List接口

List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引

List 允许使用重复元素,可以通过索引来访问指定位置的集合元素。

List 默认按元素的添加顺序设置元素的索引。

List实现类之一:ArrayList

ArrayList 是 List 接口的典型实现类 本质上,ArrayList是对象引用的一个变长数组

List实现类之一:LinkedList

LinkedList类采用链表存储方式。插入、删除元素时效率比较高,如下图

使用情况:

ArrayList:遍历元素和随机访问元素的效率比较高

               插入、删除等操作频繁时性能低下

LinkedList:插入、删除元素效率高

                  查找效率低下

常用方法:

public class TestList {
    @Test
    public void testList1() {
    	//List常用法方法:add(Object obj) remove(int index) 
    	//            set(int indext,Object obj)
    	//            add(int index,Object obj)
    	List list = new ArrayList();
    	list.add(123);
    	list.add(456);
    	list.add(new String("eric"));
    	list.add(new String("tina"));
    	System.out.println(list);
    	//在指定索引位置添加元素;
    	list.add(0, 111);
    	System.out.println(list);
    	Object obj = list.get(0);
    	System.out.println(obj);
    	//删除指定索引的元素
    	list.remove(0);
    	System.out.println(list.get(0));
    	//设置指定元素
    	list.set(0, 119);
    	System.out.println(list.get(0));
    }
    @Test
    public void testList2() {
    	List list = new ArrayList();
    	list.add(123);
    	list.add(456);
    	list.add(new String("eric"));
    	list.add(new String("tina"));
    	list.add(123);
    	//返回元素在集合中首次出现的位置,如果没有则返回-1
    	System.out.println(list.indexOf(123));
    	System.out.println(list.lastIndexOf(123));
    	//判断集合中没有重复
    	System.out.println(list.indexOf(456)==list.lastIndexOf(456));
    }
}

ArrayList遍历

public class TestList {
    @Test
    public void testList3() {
    	List list = new ArrayList();
    	list.add(123);
    	list.add(456);
    	list.add(new String("eric"));
    	list.add(new String("tina"));
    	//1.迭代器
    	Iterator iterator = list.iterator();
    	while(iterator.hasNext()) {
    		System.out.println(iterator.next());
    	}
    	System.out.println("=========");
    	//for循环
    	for(Iterator i=list.iterator();i.hasNext();) {
    		System.out.println(i.next());
    	}
    	System.out.println("==========");
    	//增强for循环
    	for (Object obj : list) {
			System.out.println(obj);
		}
    	System.out.println("=========");
    	for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fugogo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值