java之List集合

List

1.List接口是Collection接口的子接口
2.List是有序的集合,存储元素和取出元素是一致的(存ABC,取ABC)
3.有索引,包含了一些带索引的方法(底层实现是使用数组,它是一个可变数组)
4.允许存储重复的元素
5.主要实现类:ArrayList
6.常用的方法:
方法作用
void add(int index, Object ele)在指定索引位置添加元素
boolean addAll(int index, Collection eles)在指定索引位置添加一个集合
Object get(int index)获取指定索引位置的元素
int indexOf(Object obj)返回obj在集合中首次出现的索引位置,没找到就-1
int lastIndexOf(Object obj)返回obj在集合中最后一次出现的索引位置,没找到就-1
Object remove(int index)删除指定索引位置的元素
Object set(int index, Object ele)对某个索引位置的元素进行设定
7.Java代码:
		List list = new ArrayList();
		//添加元素
		list.add(123);
		list.add("张三");
		list.add(new String("eric"));
		System.out.println(list);
		list.add(0, 110);
		System.out.println(list);
		Object object = list.get(1);
		System.out.println(object);
		list.remove(0);
		System.out.println(list.get(0));
		list.set(0, 119);
		list.add(119);
		System.out.println(list);
		int index = list.indexOf(119);
		System.out.println(index);
		int lastIndex = list.lastIndexOf(119);
		
		list.addAll(0,Arrays.asList(new String[] {"王五","李	四","张三"}) );
		System.out.println(list);  
8)List集合注意事项
		List list1 = null;//不在堆中分配内存
		List list2 = new ArrayList();//堆中分了内存,但集合中无元素
		//由于未分配具体实例,会报NullPointerException
		//System.out.println(list1.size());
		System.out.println(list2.size());
		
		//在遍历集合之前通常要判断该集合是否为null且集合中是否有元素
		if(list2!=null && list2.size()!= 0) {
			for (int i = 0; i < list2.size(); i++) {
				System.out.println(list2.get(i));
			}
		}
9.List集合中常用的实现类
1)ArrayList

----底层实现是使用数组的方式来实现(动态数组),允许包含所有元素类型。
----可以根据所有位置对集合进行快速的随机访问。
----向指定的索引位置插入元素或者删除元素速度比较慢。

2)LinkedList

----采用双向链表的方式来操作数据
----便于向集合中增加删除元素,效率高
----链表的形式操作数据,访问数据的速度比较慢

3)Vector(用的很少)

----底层实现也是使用数组的方式,是线程安全的,效率比较低

4)ArrayList和LinkedList的区别==(面试题目)==

----ArrayList使用数组实现,LinkedList使用双向链表实现
----对于随机访问get和set,ArrayList由于LinkedList,因为LinkedLinked要移动指针
----对于频繁的新增和删除操作(Add、remove)LinkedList优于ArrayList

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值