Java里 ArrayList 中 add 与addAll的区别

我们经常都有这样的需求,需要把一个list的数据全部放到另一个list当中,最笨的方法当然是一个个遍历进行添加,但是Java中提供一个addAll方法。

与add方法不一样的是,add方法是添加一个item,不管你是一个什么类型的数据,都给放到item里作为一个数据进行添加。而addAll则是对相同类型的数据,对现有的list进行拼接(可能说法不严谨)。举个例子:

下面有两个List,我想将第二个List的数据添加到第一个List当中,用add方法的话是这样添加的:

for(String item : list2){

  list1.add(item);

}

如果使用addAll的话:

list1.addAll(list2);

是不是很方便?当然你也可以定义要添加的位置,可以用addAll(int index, Collection<?>);

时间: 2024-10-12 22:50:56

Java里 ArrayList 中 add 与addAll的区别的相关文章

List中Add()与AddAll()的区别

我们在开发过程中经常会使用到List<Object> list=new ArrrayList<>(); 这个集合,Object 也可以是String.Integer等. 当我们需要把list集合中的数据放到另外一个集合中(List.Set...),我们也许会使用循环遍历然后将对象存入到新的集合中,这样的方法确实可以实现效果,但是效率太低了.List中给我们提供了Add().AddAll()二个方法可以帮我们解决这个问题. 1 List<String> list = ne

Java 给ArrayList中的元素去重且顺序不变

import java.util.ArrayList; import java.util.LinkedHashSet; public class MainClass {     public static void main(String[] args)     {         //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); li

List 的add()与addAll()的区别

add 是将传入的参数作为当前List中的一个Item存储,即使你传入一个List也只会另当前的List增加1个元素 addAll 是传入一个List,将此List中的所有元素加入到当前List中,也就是当前List会增加的元素个数为传入的List的大小 即 addAll(Collection c) add(int index, Elelemt e) -------------------------------------- addAll(Collection c) 此方法按照指定 colle

【java】ArrayList、Vector、LinkedList的区别

ArrayList.Vector.LinkedList同属于List接口,都存在于java.util包中,都是可伸缩数组,可以动态改变长度. ★ArrayList和Vector都是基于存储元素Object[] array来实现的,它们会在内存中开辟一段连续的空间来存储,因为数据存储是连续的,所以它们支持用下标的方式来访问数据,而且索引数据的速度会比较快,也正因为存储是连续的,在其中插入新的元素时需要移动数据,所以在插入数据时执行速度会比较慢. 在未定义容量大小时,ArrayList和Vector

Java正则表达中Greedy Reluctant Possessive 的区别

上一篇文章<编程思想之正则表达式 >中讲了正则表达式的原理.使用方法和常见的正则表达式总结,本文将进一步探讨Java正则表达中Greedy.Reluctant.Possessive三种策略的区别. 从Java的官方文档http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html中我们可以看到,正则表达式表示数量词的符号有三套,分别是Greedy(贪婪的).Reluctant(勉强的)和Possessive(独占的).

Java sanner类中next和nextLine的区别

next() 与 nextLine() 区别 next(): 1.一定要读取到有效字符后才可以结束输入. 2.对输入有效字符之前遇到的空白,next() 方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符. next() 不能得到带有空格的字符串. nextLine(): 1.以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符. 2.可以获得空白. 示例代码: import java.util.Scanner; public 

LinkedList中add和offer的区别

offer属于 offer in interface Deque<E>,add 属于 add in interface Collection<E>. 当队列为空时候,使用add方法会报错,而offer方法会返回false. 作为List使用时,一般采用add / get方法来 压入/获取对象. 作为Queue使用时,才会采用 offer/poll/take等方法作为链表对象时,offer等方法相对来说没有什么意义这些方法是用于支持队列应用的.  

java集合框架中Set和List的区别

1. Set 接口实例存储的是无序的,不重复的数据.List 接口实例存储的是有序的,可以重复的元素. 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>. 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度.查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> . 原文地址:https://www.cnb

扒一扒系列之开发中常用的Java集合类(ArrayList篇 jdk 1.7)

关于这个系列,因为开发主要用的是java语言,一直想写写java开发中常用的一些类(虽然这才是开始的第三篇>_<),所有就起了“扒一扒”系列.这个系列会有框架,或者其他学到的东西.文章尽量做到简洁,用少的篇幅理顺相关的知识点和使用方法.废话少说,接下来扒一扒ArrayList这个集合类. 一.数据结构 让我们先看下ArrayList所在包的位置,在java.util.ArrayList中(如图1-1),它在jdk中的util中,说明它在开发中比较常用.从它的名字能看出数据结构为一个数组,看一下