📅  最后修改于: 2023-12-03 15:31:49.681000             🧑  作者: Mango
AbstractSequentialList
是一个抽象类,该类继承自AbstractList
类,它是一个实现了List
接口和一些列表操作方法的类,但它不实现列表的任何操作,只是提供了一些基本的操作方法供子类实现。其中toArray()
是其中一个方法,接下来我们将会对该方法进行详细介绍并给出一些示例。
AbstractSequentialList
的toArray()
方法的定义如下:
public Object[] toArray() {
Object[] array = new Object[size()];
Iterator<E> it = iterator();
for (int i = 0; i < array.length; i++) {
if (!it.hasNext())
return Arrays.copyOf(array, i);
array[i] = it.next();
}
return it.hasNext() ? finishToArray(array, it) : array;
}
该方法会将列表中的元素以Object数组形式返回,返回的数组中元素的顺序与它们在迭代器中的顺序一致。
下面我们将给出一些使用toArray()
方法的示例,以帮助大家更好的理解和应用该方法。
import java.util.*;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
Object[] array = list.toArray();
System.out.println(Arrays.toString(array));
}
}
输出:
[Hello, World]
在该示例中,我们创建了一个ArrayList
对象,并向其中添加了两个字符串。然后,我们调用toArray()
方法将列表中的元素存入一个Object数组中,并使用Arrays.toString()
方法打印输出该数组。
import java.util.*;
public class Test {
public static void main(String[] args) {
List<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);
Integer[] array = list.toArray(new Integer[0]);
System.out.println(Arrays.toString(array));
}
}
输出:
[1, 2]
在该示例中,我们创建了一个LinkedList
对象,并向其中添加了两个整数。然后,我们调用toArray(T[] a)
方法,将列表中的元素存入一个长度为0的Integer数组中。注意,由于我们并没有传入真正的数组,所以JVM会根据列表的大小自动创建一个长度为2的Integer数组,并将列表中的元素存入其中。
import java.util.*;
public class Test {
public static void main(String[] args) {
List<Double> list = new ArrayList<>();
list.add(1.1);
list.add(2.2);
Double[] array = new Double[2];
list.toArray(array);
System.out.println(Arrays.toString(array));
}
}
输出:
[1.1, 2.2]
在该示例中,我们创建了一个ArrayList
对象,并向其中添加了两个浮点数。然后,我们创建了一个长度为2的Double数组,调用toArray(T[] a)
方法,并将其传入该数组。JVM会将列表中的元素存入该数组,并返回该数组。
以上便是AbstractSequentialList
的toArray()
方法的详细介绍及示例。该方法可以方便地将列表中的元素存入数组,并支持将元素强制转换为指定类型的数组。如果您在使用AbstractSequentialList
类时遇到了相应的问题,希望该文可以对您有所帮助。