-2

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

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

5 回答 5

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();
于 2013-07-26T09:21:21.210 回答
1

为什么不简单的 Array[]。

int[] data = new int[2];
int[0] = //nucleas
int[1] == //satellite.

但更重要的是,你的问题没有任何意义,而且这个要求的空间/时间

于 2013-07-26T09:18:51.290 回答
0

你可以在java中使用简单的数组

int[] anArray;

// allocates memory for 2 integers
anArray = new int[2];
于 2013-07-26T09:20:30.380 回答
0

当您不知道元素的数量时,最好使用列表。但在你的情况下,你知道你只有 2 个元素,然后使用 araay

int[] array = new int[2];

并将价值添加为

array[0] = <int_value>;
array[1] = <int_value>;
于 2013-07-26T09:20:41.960 回答
0

您的代码正是您在 ArrayList 中存储两个元素所需要的!

通过在 ArrayList 构造函数中传递 2,您可以创建长度为 2 的支持数组。接下来,您可以向其中添加 2 个元素而无需调整大小。但是,如果您将第三个元素添加到 ArrayList 则支持数组将被调整大小。ArrayList 只是一个很好的数组包装器,所以使用它是因为它提供了比数组更多的功能。

于 2013-07-27T09:20:50.453 回答