Java中数组到ArrayList的转换

以下方法可用于将数组转换为 ArrayList :

null

Array to 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主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享