您的位置:

Java数组转换成List

一、List简介

List是Java集合中最常用的一种数据结构之一,用于存储一组有序的元素。List中的元素可以重复,且可以插入null值。

在Java中,List接口有多种不同的实现类,如ArrayList、LinkedList、Vector等。针对不同的场景,我们可以选择不同的实现类。

将数组转换成List可以方便我们进行集合操作,如遍历、搜索、删除等操作。

二、Java数组转换成List方法

使用Java自带的Arrays.asList()方法,可以将数组转换成List。

    // 假设有一个数组
    String[] arr = {"apple", "banana", "orange"};
    
    // 将数组转换成List
    List list = Arrays.asList(arr);

  

上面的代码将String类型的数组arr转换成了List,赋值给了变量list。

三、List的元素个数和底层数组

从Java 1.5版本开始,Arrays.asList()方法可以接收多个参数,而不仅仅是一个数组。

    // 假设有两个数组
    String[] arr1 = {"apple", "banana", "orange"};
    String[] arr2 = {"peach", "grape"};
    
    // 将两个数组转换成List
    List list = Arrays.asList(arr1, arr2);

  

上面的代码将两个数组合并成了一个List,赋值给了变量list。这时候我们需要注意一个细节问题,就是由于Arrays.asList()方法底层实际上是将数组作为List的表示形式,因此我们不能修改List的大小,否则会抛出UnsupportedOperationException异常。

在实际开发中,为了避免这个问题,我们可以使用ArrayList等其他实现类来代替Arrays.asList()方法返回的List。

从List的底层实现上来看,ArrayList是基于动态数组实现的,而LinkedList是基于双向链表实现的。因此,对于频繁的插入和删除操作,LinkedList可能更加高效一些。而对于随机访问元素的操作,ArrayList则更快。

四、List中的元素类型

在转换数组成List的过程中,如果数组中的元素是基本类型,例如int、double等,那么转换后的List中元素的类型会变成对应的包装类,例如Integer、Double等。

    // 假设有一个int类型的数组
    int[] arr = {1, 2, 3};
    
    // 将数组转换成List
    List list = Arrays.asList(arr);

  

上面的代码中,由于原数组arr中的元素是int类型,因此转换后的List中的元素类型为Integer。

五、List的遍历

通过Java增强for循环,可以方便地遍历List中的元素。

    List list = Arrays.asList("apple", "banana", "orange");
    for (String item : list) {
        System.out.println(item);
    }

  

上面的代码会输出List中的所有元素:

    apple
    banana
    orange

六、List的搜索和删除

使用Java自带的indexOf()方法可以在List中查找元素。如果找到了,会返回该元素第一次出现的位置。如果没有找到,返回-1。

    List list = Arrays.asList("apple", "banana", "orange");
    int index = list.indexOf("banana");
    if (index != -1) {
        System.out.println("找到了,位置在:" + index);
    } else {
        System.out.println("没找到");
    }

  

上面的代码会输出:

    找到了,位置在:1

使用Java自带的remove()方法可以在List中删除指定元素。如果删除成功,返回true;如果删除失败(即List中不存在该元素),返回false。

    List list = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
    boolean result = list.remove("banana");
    if (result) {
        System.out.println("删除成功");
    } else {
        System.out.println("删除失败");
    }

  

上面的代码会输出:

    删除成功

七、List和数组互相转换

除了将数组转换成List,我们还可以将List转换成数组。

使用List自带的toArray()方法,可以将List转换成数组。

    List list = Arrays.asList("apple", "banana", "orange");
    String[] arr = list.toArray(new String[0]);
    System.out.println(Arrays.toString(arr));

  

使用Arrays自带的asList()方法,可以将数组转换成List。

    String[] arr = {"apple", "banana", "orange"};
    List list = new ArrayList<>(Arrays.asList(arr));
    System.out.println(list);

  

八、结语

本文主要介绍了Java数组转换成List的方法以及List的相关操作,如遍历、搜索、删除等。在实际开发中,我们可以灵活选择不同的List实现类来满足不同的需求。