以下方法可用于将数组转换为 ArrayList :
方法1:使用数组。asList()方法
Syntax: public static List asList(T... a)// Returns a fixed-size List as of size of given array. // Element Type of List is of same as type of array element type.// It returns an List containing all of the elements in this // array in the same order. // T represents generics
请注意,这里有一个数组参数和列表返回值。
- 返回指定数组支持的固定大小列表。
- 返回的列表可序列化,并实现随机访问。
- 由于返回的列表是固定大小的,所以我们不能在其中添加更多元素,但我们可以使用ArrayList类中定义的set(index,new element)方法将现有元素替换为新元素。
JAVA
// Java program to demonstrate conversion of // Array to ArrayList of fixed-size. import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; // Conversion of array to ArrayList // using Arrays.asList List al = Arrays.asList(geeks); System.out.println(al); } } |
输出:
[Rahul, Utkarsh, Shubham, Neelam]
如果我们在转换后的列表中添加更多元素呢? 由于返回的列表是固定大小的列表,我们无法添加更多元素。尝试添加更多元素将导致不支持的操作异常。 考虑下面的例子。
JAVA
// Java program to demonstrate error // if we add more element(s) to // a fixed-size List. import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; // Conversion of array to ArrayList // using Arrays.asList List al = Arrays.asList(geeks); System.out.println(al); // Adding some more values to the List. al.add( "Shashank" ); al.add( "Nishant" ); System.out.println(al); } } |
输出:
[Rahul, Utkarsh, Shubham, Neelam]
运行时错误
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at GFG.main(File.java:16)
因此,建议创建新的ArrayList和pass 数组。asList(数组引用) 作为它的参数(即ArrayList的构造函数参数)。 考虑下面的例子:
JAVA
// Java program to demonstrate how to add // one or more element(s) to returned // resizable List. import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; List<String> al = new ArrayList<String>(Arrays.asList(geeks)); System.out.println(al); // Adding some more values to the List. al.add( "Shashank" ); al.add( "Nishant" ); System.out.println( "ArrayList After adding two" + " more Geeks: " ); System.out.println(al); } } |
[Rahul, Utkarsh, Shubham, Neelam]ArrayList After adding two more Geeks: [Rahul, Utkarsh, Shubham, Neelam, Nishant, Shashank]
&nbap;
方法2:使用集合。addAll()方法
Syntax: public static boolean addAll(Collection c, T... a)// Adds all of the specified elements to the specified collection.// Elements to be added may be specified individually or as an array.// T is generics
请注意,有一个集合参数 C 要插入的元素和数组参数 A. 包含要插入的元素 C . 返回类型是布尔类型。如果调用导致集合更改,则返回true。 如果收集失败,它会抛出UnsupportedOperationException C 不支持add方法,如果元素(或数组元素)中的值的某些方面阻止将其添加到集合中,则会引发IllegalArgumentException C . 考虑下面的例子:
JAVA
// Java program to demonstrate how to // add all elements of array to arrayList. import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; List<String> al = new ArrayList<String>(); // adding elements of array to arrayList. Collections.addAll(al, geeks); System.out.println(al); } } |
输出:
[Rahul, Utkarsh, Shubham, Neelam]
将null添加到列表中 注意:如果指定的集合或指定的数组为null,则会引发NullpointerException。
JAVA
// Adding null to a list import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; List<String> al = new ArrayList<String>(); Collections.addAll( null , geeks); System.out.println(al); } } |
将null添加到列表末尾
JAVA
import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; List<String> al = new ArrayList<String>(); Collections.addAll(al, null ); System.out.println(al); } } |
运行时错误
Exception in thread "main" java.lang.NullPointerException at java.util.Collections.addAll(Collections.java:5401) at GFG.main(File.java:11)
方法3:使用手动方法使用add()方法转换数组
如果我们不想使用java内置方法,我们可以使用这种方法。这是一种将所有数组元素添加到列表中的手动方法。
Syntax: public boolean add(Object obj)// Appends the specified element to the end of this list.// Returns true.
JAVA
// Java program to convert a ArrayList to // an array using add() in a loop. import java.util.*; class GFG { public static void main (String[] args) { String[] geeks = { "Rahul" , "Utkarsh" , "Shubham" , "Neelam" }; List<String> al = new ArrayList<String>(); // Array to ArrayList Conversion for (String geek : geeks) al.add(geek); System.out.println(al); } } |
输出:
[Rahul, Utkarsh, Shubham, Neelam]
相关文章: 数组列表到数组的转换 本文由 尼茨海伦德拉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。