java中list的add与addall方法区别

在做项目时我遇到过这样的问题,java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.alibaba.getter.jstorm.biz.domain.Page。知道是类型转换错误,但是不知道是那的问题,最后通过debug,发现了吗问题,主要是自己基础知识不牢固。

如果有多个已经被实例化的List 集合,想要把他们组合成一个整体,并且,这里必须直接使用List 自身提供的一个方法List.addAll(),否则使用了List.add()方法,则会输出不正常的信息。

 

     这里不能简单的使用List.add()方法,如果使用了List.add()方法,程序只能找到相应往List中添加的List 集合个数,而不会返回相应的全部结果集。

 

    这里就需要明白List.add() 和 List.addAll() 的区别了、、、

 

    1>List.add() 方法,也是往List 中增加list,但是,它增加的是一个List 实例。如果,往容器中增加的那个List 实例从数据库中查到的结果有5条,不过,如果使用了List.add(list1);程序只会输出一条记录。原因就是上面说的。List.add() 加List 实例,它会把这个看一个实例,而不是把那个看成一个容器。

 

    例如:List.add(list1),List.add(list2);List.add(list3),  这时,List.size 它的大小是3。

 

    List.add() 的含义就是:你往这个List 中添加对象,它就把自己当初一个对象,你往这个List中添加容器,它就把自己当成一个容器。

 

   2>List.addAll()方法,就是规定了,自己的这个List 就是容器,往里面增加的List 实例,增加到里面后,都会被看成对象。

 

    这时:List.add(list1),List.add(list2);List.add(list3),  这时,List.size 它的大小就是所有list 实例化后的总数和总的记录数。


 

 

    因此,当需要把多个List 实例放到一起的时候,必须使用List.addAll()方法。

### 回答1: `List.addAll()` 方法可以将一个集合的所有元素添加到另一个集合的末尾。 语法: ``` void addAll(int index, Collection c) ``` 其,`index` 参数表示在哪个索引处插入集合的元素,`c` 参数表示要插入的集合。 示例: ``` List<Integer> list1 = new ArrayList<>(); list1.add(1); list1.add(2); list1.add(3); List<Integer> list2 = new ArrayList<>(); list2.add(4); list2.add(5); list1.addAll(list2); System.out.println(list1); // 输出 [1, 2, 3, 4, 5] ``` 上面的示例,`list2` 的元素被添加到了 `list1` 的末尾。 ### 回答2: 在JavaList.addAll()是用于将另一个集合的元素添加到List集合的末尾的方法。它接受一个Collection类型的参数,将该集合的元素逐个添加到调用addAll方法List集合。例如,我们可以使用以下代码来演示addAll()方法的用法: List<String> list1 = new ArrayList<>(); list1.add("Apple"); list1.add("Banana"); list1.add("Orange"); List<String> list2 = new ArrayList<>(); list2.add("Grapes"); list2.add("Watermelon"); list2.add("Pineapple"); list1.addAll(list2); 通过调用list1.addAll(list2)方法,将list2的所有元素添加到list1的末尾。此时,list1的内容将变为["Apple", "Banana", "Orange", "Grapes", "Watermelon", "Pineapple"]。 值得注意的是,addAll()方法是按照传入集合的迭代器的顺序,将元素逐个添加到目标List集合的末尾。如果传入的集合允许有重复的元素,那么addAll()方法也会将这些重复元素添加到目标List集合。另外,addAll()方法还可以接受任何实现了Collection接口的集合类型参数,例如Set、LinkedList等。 总而言之,List.addAll()方法Java用于将另一个集合的元素添加到List集合末尾的方法。它允许我们在不逐个添加元素的情况下,一次性地将一个集合的元素添加到另一个集合,十分便捷。 ### 回答3: 在JavaList.addAll()是用来将一个集合的元素全部添加到另一个List集合方法。它的作用是将源集合的所有元素依次添加到目标集合的末尾。 List.addAll()方法有多种重载形式,可以接受不同类型的参数。最常用的形式是addAll(Collection<? extends E> c),其c是一个待添加元素的集合。这种形式的addAll()方法可以将源集合的所有元素都添加到目标集合。 使用List.addAll()方法的步骤如下: 1. 创建一个目标List集合,它可以是ArrayList、LinkedListList的实现类。 2. 创建一个源集合,它可以是ArrayList、LinkedListList的实现类,或者是其他类型的集合。 3. 调用目标ListaddAll()方法,将源集合作为参数传入。例如,targetList.addAll(sourceList)。 4. 执行addAll()方法后,源集合的所有元素都会被添加到目标集合的末尾。 使用List.addAll()方法的好处是可以快速将一个集合的元素复制到另一个集合,省去了逐个添加元素的步骤。这样可以更高效地合并多个集合的元素,或者将一个集合的元素复制到另一个集合进行操作。 需要注意的是,List.addAll()方法是将源集合的元素依次添加到目标集合的末尾,并不会创建集合的副本。这意味着,如果后续对源集合或目标集合进行操作,将会影响到两个集合的元素。如果需要独立的集合副本,可以在添加元素之前先创建一个新的集合对象。 总而言之,List.addAll()是Java一个方便的方法,用于将一个集合的所有元素添加到另一个集合。它可以帮助我们更简洁、高效地进行集合操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值