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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STL list是C++标准模板库中的一个双向链表容器,它提供了一系列接口用于操作和管理链表中的元素。下面是一些常见的STL list接口: 1. 构造函数: - list(size_type n, const value_type& val = value_type()):构造包含n个值为val的元素的list。 - list():构造一个空的list。 - list(const list& x):拷贝构造函数,用于复制另一个list的内容构造新的list。 - list(InputIterator first, InputIterator last):用[first, last)区间中的元素构造list。 2. 容器大小: - size():返回list中元素的个数。 - empty():检查list是否为空。 3. 元素访问: - front():返回list中第一个元素的引用。 - back():返回list中最后一个元素的引用。 4. 插入和删除元素: - push_front(const value_type& val):在list的开头插入一个元素。 - pop_front():移除list的第一个元素。 - push_back(const value_type& val):在list的末尾插入一个元素。 - pop_back():移除list的最后一个元素。 - insert(iterator position, const value_type& val):在指定位置之前插入一个元素。 - erase(iterator position):移除指定位置的元素。 - erase(iterator first, iterator last):移除[first, last)区间中的元素。 5. 元素操作: - clear():移除list中的所有元素。 - remove(const value_type& val):移除所有等于val的元素。 - unique():移除所有相邻重复的元素。 - sort():对list中的元素进行排序。 - reverse():反转list中元素的顺序。 你可以参考C++官方文档(https://cplusplus.com/reference/list/list/)了解更多关于STL list接口和用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值