我必须在java中的一个数据结构中保存两个数字,但这两个数字的顺序很重要。这意味着,每当我拨打这些号码时;第一个数字将是我的Nucleus,第二个数字将是我的卫星。我不知道我应该使用哪种数据类型,如果我使用ArrayList它将使用如此多的内存,我不需要。因为ArrayList的初始大小是10,但我只需要2.如果使用HashSet,我没有订单。
ArrayList<int> array=new ArrayList<int>(2);
答案 0 :(得分:7)
我实际上更倾向于基于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();
答案 1 :(得分:1)
为什么不是简单的数组[]。
int[] data = new int[2];
int[0] = //nucleas
int[1] == //satellite.
但更重要的是,你的问题没有任何意义以及这个要求的空间/时间
答案 2 :(得分:0)
你可以在java中使用简单数组
int[] anArray;
// allocates memory for 2 integers
anArray = new int[2];
答案 3 :(得分:0)
当您不知道元素的数量时,最好使用列表。但在你的情况下,你知道你只有2个元素然后使用araay而不是
int[] array = new int[2];
并将值添加为
array[0] = <int_value>;
array[1] = <int_value>;
答案 4 :(得分:0)
您的代码正是您在ArrayList中存储两个元素所需的代码!
通过在ArrayList构造函数中传递2,可以创建长度为2的后备数组。接下来,您可以在不调整大小的情况下向其中添加2个元素。但是如果向ArrayList添加第三个元素,则将调整后台数组的大小。 ArrayList只是一个很好的数组包装器,因此使用它是因为它提供了比数组更多的功能。