List接口

List 是一个接口,它继承于Collection的接口。它代表着有序的队列。

和Set比较:List中元素可以重复,并且是有序的(这里的有序指的是按照放入的顺序进行存储。如按照顺序把1,2,3存入List,那么,从List中遍历出来的顺序也是1,2,3)。Set中的元素不可以重复,并且是无序的(从Set中遍历出来的数据和放入顺序没有关系)。

ArrayList、 LinkedList 和 Vector之间的区别

ArrayList:底层是数组,是大小可变的动态数组。

LinkedList:底层是双向链表。LinkedList还实现了Queue接口,所以他还提供了offer(), peek(), poll()等方法。

ArrayList&LinkedList:数组中查询和赋值比较快,因为可以直接通过数组下标访问指定位置。链表中删除和增加比较快,因为可以直接通过修改链表的指针(Java中并无指针,这里可以简单理解为指针。其实是通过Node节点中的变量指定)进行元素的增删。

vector:和ArrayList是实现方式一样 ,只不过比它线程安全。

ArrayList

List<String> aList=new ArrayList<String>();
Collection<String> aCollection=new ArrayList<String>();
/*1.向集合中添加元素
*Collection:public boolean add(E element)
*           public boolean addAll(Collection<? extends E>c)
*List:public void add(int index,E element)
*/
aList.add("HELLO");
aList.add(0,"WORLD");
Systrm.out.println(aList);//输出 [WORLD,HELLO]
aCollection.add("XT");
aList.addAll(aCollection);
Systrm.out.println(aList);//输出 [WORLD,HELLO,XT]
aList.addAll(0,Collection);//输出 [XT,WORLD,HELLO]

/*2.删除元素
*Collection:public boolean remove(Object o)删除一个对象
*           public boolean removeAll(Collection<?> c)删除一组
*List:public E remove(int index)删除指定位置对象
*/
aList.remove(0);
aList.remove("Hello");

/*3.输出List内容
*Collection:size()   取得全部数据长度
*List:get(int index)   取得集合中指定位置的元素
*/
List<String> bList=new ArrayList<String>();
bList.add("Hello");
bList.add("World");
for(int i=0;i<bList.size();i++){
    System.out.print(bList.get(i)+"、");
}
//输出Hello、World

/*4.将集合变为对象数组
*Collection:toArray()
*/
String str[]=bList.toArray(new String[]{});
for(int i=0;i<str.length();i++){
    System.out.print(str[i]+"、");
}
//输出Hello、world

/*5.集合的其他相关操作
*截取集合、查找元素位置、判断元素是否存在、集合是否为为空等
*/
List<String> cList=new ArrayList<string>();
System.out.println(cList.isEmpty());//true
cList.add("Hello");
cList.add("World");
cList.add("XT");
System.out.println(cList.contains("Hello"));//true
List<String> sub=cList.subList(1,2);//取出来的是1~(2-1) 即World
System.out.println(cList.indexOf("Hello"));//0

asList:Arrays.asList的作用是将数组转化为list,一般是用于在初始化的时候,设置几个值进去,简化代码,省去add的部分。

LinkedList

11

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值