List接口及相关类

list接口

概述: 有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

遍历方式
List接口是有序的,可以通过普通for遍历,还可以通过ListIterator遍历。
E get(int index)
ListIterator listIterator() 返回此列表元素的列表迭代器(按适当顺序)。
ListIterator listIterator(int?index) 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。

toArray方式遍历
List list = new ArrayList();
list.add(“林冲”);
list.add(“武大郎”);
list.add(“潘金莲”);
list.add(“西门庆”);
list.add(“武松”);
list.add(“李逵”);
list.add(“宋江”);
list.add(“卢俊义”);
list.add(“时迁”);

	// 泛型toArray 来自于Collection
	String[] strs = list.toArray(new String[] {});
	for (String s : strs) {
		System.out.println(s);
	}

迭代器遍历
// 迭代器 来自于Collection
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
或者
for(Iterator iterator = list.iterator();
iterator.hasNext(); System.out.println(iterator.next())) ;
Forearch遍历
for (String s: strs) {
System.out.println(s);
}
普通for遍历

// 普通for遍历
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}

列表迭代器

ListIterator<String> lit = list.listIterator();
		while (lit.hasNext()) {
			String s = lit.next();
			System.out.println(s);
		}
       while (lit.hasPrevious()) {
			String s = lit.previous();
			System.out.println(s);
		}
List<String> subList = list.subList(1, 5);
		ListIterator<String> listIterator=subList.listIterator(subList.size());
		while(listIterator.hasPrevious()) {
			System.out.println(listIterator.previous());
		}

Arraylist类

List 接口的大小可变数组的实现。
特点
1.底层数据结构是数组
2.增加和删除的效率低,查询和修改的效率高
3.能够存储 null 值
4.线程不安全,效率高 可以通过 Collections.synchronizedList();变安全
5.有索引,能够方便检索
6.元素可重复,我们自己可以通过 选择排序去重复
7.不可以排序,但是可以通过 Collections.sort();方法排序
8.注:ArrayList中常用的方法全部来自于 父类 Collection,List,Object.这里不再做详细叙述。

list集合中ArrayList和LinkedList
ArrayList是一种单列集合,可以存储任意类型元素,有序,有索引,元素线性存储,占据一片连续的空间。底层实现是数组。
LinkedList:
单列集合,存任意类型,元素线性存储。有序无索引。底层是双向链表。
特点:有序,元素可重复,查找慢,增删快,增删时只须移动指针,查找需要顺着指针依次遍历查找,效率低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值