如何将ArrayList的大小减小到2?

时间:2013-07-26 09:16:49

标签: java

我必须在java中的一个数据结构中保存两个数字,但这两个数字的顺序很重要。这意味着,每当我拨打这些号码时;第一个数字将是我的Nucleus,第二个数字将是我的卫星。我不知道我应该使用哪种数据类型,如果我使用ArrayList它将使用如此多的内存,我不需要。因为ArrayList的初始大小是10,但我只需要2.如果使用HashSet,我没有订单。

ArrayList<int> array=new ArrayList<int>(2);

5 个答案:

答案 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只是一个很好的数组包装器,因此使用它是因为它提供了比数组更多的功能。