Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组与数组列表_Java_Arrays_Arraylist - Fatal编程技术网

Java 数组与数组列表

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”迭代之间也存在等价

我正试图对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”迭代之间也存在等价性

这些等价物适用于所有类型的
列表
。。。不仅仅是
ArrayList
。然而,对于一些
List
实现,位置
set
get
方法成本高昂



话虽如此,将数组包装为列表(使用
Arrays.asList
)只是在需要对数组和列表进行泛化时才会这样做。而且它不适用于基元类型的数组。如果您的是一个数组,并且您的算法调用了一个数组(即,它不需要更高级别的列表操作,如插入、删除等),那么最好远离列表API。

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

  • list.get(i)
    相当于表达式
    array[i]
  • list.set(i,v)
    相当于语句
    array[i]=v
  • list.size()
    相当于表达式
    array.length
数组和列表的“for each”迭代之间也存在等价性

这些等价物适用于所有类型的
列表
。。。不仅仅是
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);