我必须在java中的一个数据结构中保存两个数字,但是这两个数字的顺序很重要。这意味着,每次我拨打这些号码时;第一个数字将是我的 Nucleus,第二个数字将是我的 Satellite。我不知道我应该使用哪种数据类型,如果我使用 ArrayList 它将使用这么多内存,而我不需要。因为 ArrayList 的初始大小是 10,但我只需要 2。如果使用 HashSet,我没有订单。
ArrayList<int> array=new ArrayList<int>(2);
我必须在java中的一个数据结构中保存两个数字,但是这两个数字的顺序很重要。这意味着,每次我拨打这些号码时;第一个数字将是我的 Nucleus,第二个数字将是我的 Satellite。我不知道我应该使用哪种数据类型,如果我使用 ArrayList 它将使用这么多内存,而我不需要。因为 ArrayList 的初始大小是 10,但我只需要 2。如果使用 HashSet,我没有订单。
ArrayList<int> array=new ArrayList<int>(2);
我实际上会更倾向于Object
这里的基于解决方案;如果有任何代码可读性。
public class Atom
{
private int nucleus;
private int satellite;
public Atom(int nucleus, int satellite)
{
this.nucleus = nucleus;
this.satellite = satellite;
}
}
将它们称为类的成员意味着您无需担心顺序,并且可以在一个集合中存储任意数量的。
List<Atom> atoms = new ArrayList<Atom>();
atoms.add(new Atom(4,1));
int nucleus = atoms.get(0).getNucleus();
// Assuming you've written your getter method.
int satellite = atoms.get(0).getSatellite();
为什么不简单的 Array[]。
int[] data = new int[2];
int[0] = //nucleas
int[1] == //satellite.
但更重要的是,你的问题没有任何意义,而且这个要求的空间/时间
你可以在java中使用简单的数组
int[] anArray;
// allocates memory for 2 integers
anArray = new int[2];
当您不知道元素的数量时,最好使用列表。但在你的情况下,你知道你只有 2 个元素,然后使用 araay
int[] array = new int[2];
并将价值添加为
array[0] = <int_value>;
array[1] = <int_value>;
您的代码正是您在 ArrayList 中存储两个元素所需要的!
通过在 ArrayList 构造函数中传递 2,您可以创建长度为 2 的支持数组。接下来,您可以向其中添加 2 个元素而无需调整大小。但是,如果您将第三个元素添加到 ArrayList 则支持数组将被调整大小。ArrayList 只是一个很好的数组包装器,所以使用它是因为它提供了比数组更多的功能。