Conversión de listas y arreglos

Lista convertida en matriz

lista.toArray();

Object[]  ans1 = list.toArray();  //直接将 list 转换成 Object[] 类型的 数组;

lista.toArray(T[] a)


Integer[] ans2 = list.toArray(new Integer[list.size()]); //输出指定类型的数组,输出的数组类型与括号中参数类型一致;

Debe ser una clase contenedora (Cadena, Entero, Carácter, etc.), no un tipo de datos básico (cadena, int, char);
al crear una matriz: int [ ] arr = new int [ ] {}; Los tipos de datos básicos pueden ser usado

manifestación

// 创建一个list,并且对list赋值        
List<Integer>  list = new ArrayList<>();       
for (int i = 1; i < 11; i++) {
    
    
        list.add(i);
    }
 
 
//方法一:
Object[]  ans1 = list.toArray();
System.out.println("1:" + Arrays.toString(ans1));
 
// 方法二:
Integer[] ans2 = list.toArray(new Integer[list.size()]);
System.out.println("2:" + Arrays.toString(ans2));
 
 
1:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array convertido a Lista

Arrays.asList( );

此种方法残缺:重新得到的 list 不能 add( ) 或者 remove( );

// 因为list中是包装类。所以数组创建时也需要使用包装类 
Integer[] num = new Integer[]{
    
    1,2,3,4,5,6,7,8,9};
List<Integer> ans1 = Arrays.asList(num);
 
//此时得到的list 不能 使用 add() 与 remove()方法;
//解决办法:创建一个新的list 对象,将残缺的list加入进去     
List<Integer> list = new ArrayList<>(ans1);

Tenga en cuenta que el valor de retorno de este método es una clase interna estática privada java.util.Arrays.ArrayList en la clase java.util.Arrays, que no es la clase java.util.ArrayList.
La clase java.util.Arrays.ArrayList tiene set(), get(), contains() y otros métodos,
pero no admite la adición de métodos add() o la eliminación de métodos remove(), y llamar a estos métodos informará un error.

Collections.addAll( ); (este método es el más práctico)

Cree un nuevo objeto de lista directamente, luego use el método Collections.addAll( ).

Integer[] num = new Integer[]{
    
    1,2,3,4,5,6,7,8,9};
List<Integer> ans2 = new ArrayList<>();
Collections.addAll(ans2,num);

Guess you like

Origin blog.csdn.net/yzx3105/article/details/131617247