Java 集合之List 集合的添加方法顺序分析以及add和addAll区别

本篇主要探讨论证以下两个问题:

一、List集合有一个特点就是元素有序,即元素的存入顺序与其取出顺序一致。

二、List集合的添加方法主要有add()和addAll()。那两者的区别在哪呢


add()是将传入的的参数作为当前 List 中d的一个项目(Item)来存储,即使你传入一个 list 也只会另当前的List集合增加 1 个元素。

addAll()是传入一个List,将此前List集合中的所有元素加入到当前的 List 中,当前 List 集合会增加的元素个数是传入的 List 的大小


一、这里举例 向 ArrayList集合中加入一些元素。观察 list 在重复位置添加元素,最后的结果如何。

public class TestList{
    public static void main(String args[]){   //  结果为 Hello Java Learn World
        List list = new ArrayList();           // 因为 List集合输出有序且不重复


        list.add("Hello");
        list.add("World");
        list.add(1,"Learn");
        list.add(1,"Java");
        printList(list);

    }
    public static void printList(List list){  //printList()输出方法 传入List对象
        //1
        System.out.println("集合结果输出:");
        for(int i = 0; i< list.size();i++) {
            System.out.print(list.get(i)+" ");
        }
    }
}

 观察添加元素的代码块:

        list.add("Hello"); // 1
        list.add("World"); // 2
        list.add(1,"Learn"); // 3 
        list.add(1,"Java"); // 4


这里注意,1、2处代码分别在集合的第一位和第二位加入了Hello 和World,

3 处代码在索引为1 的位置加入了Learn,此时加入顺序变成了 Hello、Learn、World

同理,4 处代码又在当前集合中索引为 1 的位置加入了 Java。

最后之前元素向后推移。输出结果为 :Hello Java Learn World 


结论:可以发现存入顺序与取出顺序一致,且若采用无下标的添加方法,后加入的元素是在当前 List 集合的末尾添加。

若采用带下标添加,则下标后的元素依次后移。顺序不变。

二、本例中在上边类的基础上加入一个新的list集合,定义为 list2。

将list 集合中的元素分别用 add()和addAll()方法加入到list2 的集合中。并分别输出结果,返回其长度。


add()方法分析:

对于集合的添加方法 add(),有两种方式。

一种是 直接写要加入的元素对象,另一种是前边写上下标位置,后边写元素对象。 

语法 1  add(Object element )

public class TestList{
    public static void main(String args[]){   //  结果为 Hello Java Learn World
        List list = new ArrayList();           // 因为 List集合输出有序且不重复


        list.add("Hello");
        list.add("World");
        list.add(1,"Learn");
        list.add(1,"Java");
        printList(list);  // 输出 list 集合的遍历结果
        ArrayList list2 = new ArrayList();  //新定义一个list2 集合对象
        
       //测试区,这是开始位置,

        list2.add(list);   
        
       // 这是结束位置,以下代码块将在此处进行代入

        printList2(list2);   // 输出 list2 集合的遍历结果


    }
    public static void printList(List list){  //printList()输出方法 传入list对象
       
        System.out.println("list 循环输出:");
        for(int i = 0; i< list.size();i++) {
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
    }

    public static void printList2(List list2) {  //printList2()输出方法 传入list2对象
        
        System.out.println("\nlist2 循环输出:");
        for (int i = 0; i < list2.size(); i++) {
            System.out.print(list2.get(i) + " ");
        }

        System.out.println("\nlist2集合的长度为:"+list2.size());
    }
}

1、上例中 采用的是 add( ) 方法将list 对象加入其中 list2 中,测试区代码即为上例中代码

        list2.add(list);

输出结果为:


语法 2   add(int index ,  Object element) 将元素 element 插入到List集合中 index 处


2、若是采用 下标方式的add()方法进行添加,当前list2 集合中代码为空。我们先在list2 中加入两个元素。

再在下标为 1 的位置添加进 list 对象

测试区代码为

        list2.add("One");//先后插入两个元素
        list2.add("Two");
        list2.add(1,list);


此时输出结果为:

  

可以观察出  通过下标添加方法将 list集合对象添加到了下标为0 的One 元素的后边。即当前list对象在list2中下标为1.添加成功


由上边两个例子可以看出 add()方法传入的 list 只会给当前 list 中增加 1 个元素

即传入的参数被当中一个元素来处理了 ,会以数组形式显示。

----------------------------

接下来是addAll()方法

addAll()方法用于将指定collection中的所有元素添加到列表尾部。

语法1  addAll ( Collection c ) 

测试区代码为

        list2.addAll(list);

输出结果为:



语法2  addAll ( int index , Collection c )  将集合 c 所包含的元素插入到 list集合的 index 处

index:用于指定collection 的第一个元素所插入索引的位置

     c:用于指定要将全部元素添加到列表中的collection

测试区代码为:

        list2.add("One");
        list2.add("Two");
        list2.addAll(1,list);


输出结果为:



由上边两个例子可以看出 

addAll()方法传入的 list 会给当前 list 中增加 与传入的 list 相同个数的元素,结果不会以数组形式显示。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用 `list.addAll(set)` 将 set 集合中的所有元素添加list 集合中。 例如: ``` Set<String> set = new HashSet<>(); set.add("a"); set.add("b"); set.add("c"); List<String> list = new ArrayList<>(); list.addAll(set); ``` 现在,list 集合中包含了 set 集合中的所有元素:"a", "b", "c"。 ### 回答2: 在Java中将Set添加List集合里面,可以使用ListaddAll()方法。该方法可以将指定集合中的所有元素按照顺序添加到列表的末尾。 具体步骤如下: 1. 首先,创建一个List对象,用于存储Set集合的元素。 2. 调用List对象的addAll()方法,并将Set集合作为参数传入。 3. 添加完成后,Set集合的元素将按照顺序添加List集合的末尾。 例如,假设有一个Set集合set和一个List集合list,我们可以进行如下操作: ``` Set<String> set = new HashSet<>(); set.add("Java"); set.add("Python"); List<String> list = new ArrayList<>(); list.addAll(set); ``` 在执行完以上代码后,List集合中的元素将按照Set集合中元素的顺序添加进去。此时,List集合中的元素为["Java", "Python"]。 需要注意的是,List集合是有序的,而Set集合是无序的,所以添加List集合中的元素将按照Set集合中元素的顺序进行排列。若希望保留Set集合中的元素顺序,可以使用LinkedHashSet或TreeSet来代替HashSet。 ### 回答3: 在Java中,可以将Set添加List集合中,可以通过以下两种方式实现: 方式一:使用addAll()方法将Set的元素添加List集合中。 示例代码如下: ``` Set<String> set = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); List<String> list = new ArrayList<>(); list.addAll(set); ``` 上述代码首先创建一个Set集合添加了几个元素。然后创建一个空的List集合。接下来使用ListaddAll()方法将Set的元素全部添加List集合中。 方式二:通过构造函数将Set转换为List集合。 示例代码如下: ``` Set<String> set = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); List<String> list = new ArrayList<>(set); ``` 上述代码同样首先创建一个Set集合添加了几个元素。然后使用List的构造函数通过传入Set集合来创建一个新的List集合。 无论使用哪种方式,最终都可以将Set中的元素添加List集合中。需要注意的是,由于Set和List是有序和无序的不同集合类型,所以添加List集合中的元素顺序可能会有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值