数组与ArrayList

时间:2013-12-01 00:24:15

标签: java arrays arraylist

我正在努力变得更熟悉ArrayList。我想知道如何使用数组列表与tan数组进行等效操作。

heap[hole]=heap[child];

heap[hole]=temp;

heap[hole]=heap[hole/2];

2 个答案:

答案 0 :(得分:3)

Java数组和列表之间的直接等效操作是:

  • list.get(i)相当于表达式array[i]
  • list.set(i, v)相当于语句array[i] = v;
  • list.size()相当于表达式array.length

数组和列表的“for each”迭代之间也存在等价关系。

这些等同性适用于所有类型的List ...而不仅仅是ArrayList。但是对于某些List实施,位置setget方法很昂贵。


话虽如此,将数组包装为列表(使用Arrays.asList)只有在需要对数组和列表进行推广时才会这样做。它不适用于原始类型的数组。如果您的数组是什么,并且您的算法需要一个数组(即它不需要更高级别的列表操作,如插入,删除等),最好不要使用List API。

答案 1 :(得分:2)

ArrayList heapList = new ArrayList(Arrays.asList(heap));
heapList.set(hole, heapList.get(child));

heapList.set(hole, temp);

heapList.set(hole, heapList.get(hole/2);