Java 数组与数组列表
我正试图对ArrayList更加熟悉。我想知道与tan数组相比,如何使用数组列表执行等效的操作Java 数组与数组列表,java,arrays,arraylist,Java,Arrays,Arraylist,我正试图对ArrayList更加熟悉。我想知道与tan数组相比,如何使用数组列表执行等效的操作 heap[hole]=heap[child]; heap[hole]=temp; heap[hole]=heap[hole/2]; Java数组和列表之间的直接等价操作是: list.get(i)相当于表达式array[i] list.set(i,v)相当于语句array[i]=v list.size()相当于表达式array.length 数组和列表的“for each”迭代之间也存在等价
heap[hole]=heap[child];
heap[hole]=temp;
heap[hole]=heap[hole/2];
Java数组和列表之间的直接等价操作是:
相当于表达式list.get(i)
array[i]
相当于语句list.set(i,v)
array[i]=v代码>
相当于表达式list.size()
array.length
列表
。。。不仅仅是ArrayList
。然而,对于一些List
实现,位置set
和get
方法成本高昂
话虽如此,将数组包装为列表(使用
Arrays.asList
)只是在需要对数组和列表进行泛化时才会这样做。而且它不适用于基元类型的数组。如果您的是一个数组,并且您的算法调用了一个数组(即,它不需要更高级别的列表操作,如插入、删除等),那么最好远离列表API。Java数组和列表之间的直接等效操作是:
相当于表达式list.get(i)
array[i]
相当于语句list.set(i,v)
array[i]=v代码>
相当于表达式list.size()
array.length
列表
。。。不仅仅是ArrayList
。然而,对于一些List
实现,位置set
和get
方法成本高昂
话虽如此,将数组包装为列表(使用
Arrays.asList
)只是在需要对数组和列表进行泛化时才会这样做。而且它不适用于基元类型的数组。如果您的算法是一个数组,并且您的算法调用了一个数组(即,它不需要更高级别的列表操作,如插入、删除等),那么最好远离列表API。是的,抱歉应该指定站点新建,抱歉应该指定站点新建,抱歉,谢谢。我认为必须有一个更好的方法,然后使用一堆变量并交换东西。@user3003584-为什么你会期望这样?这就是使用数组的方式。啊,谢谢。我认为必须有一个更好的方法,然后使用一堆变量并交换东西。@user3003584-为什么你会期望这样?这就是使用数组的方式。不幸的是,我正在编写的代码是针对Dijkstra的Alogrithm的优先级队列的。我想我有点被束缚在使用arrayList上了。不幸的是,我正在写的代码是为Dijkstra的Alogrithm的优先级队列编写的。我想我有点沉迷于使用arrayList。
ArrayList heapList = new ArrayList(Arrays.asList(heap));
heapList.set(hole, heapList.get(child));
heapList.set(hole, temp);
heapList.set(hole, heapList.get(hole/2);