Java集合——List接口

1.定义

List是Collection的子接口,元素有序并且可以重复,表示线性表。

2.方法

add(int index,Object e):在指定索引(和数组下标类似,为0,1,2....)放入元素

addAll(int index,Collection e):在指定索引处放入集合

Object get(int index):获取指定索引的元素

int indexOf(Object o):获取指定元素在集合中的索引(若元素重复,返回元素第一次所在的索引),判定方法为equals(),需要重写equals方法

int lastIndexOf(Object o):返回此列表中最后出现的元素的索引

Object remove(int index):删除指定索引对应的元素

Object set(int index,Object e):替换指定索引的元素

List subList(int fromIndex, int toIndex):返回索引为[form,to)的元素集合

3.常用实现类

ArrayList:它为元素提供了下标,可以看作长度可变的数组,为顺序线性表

LinkedList:通过代价较低的在List中间进行插入和删除操作,提供了优化的顺序访问,但是在随即访问方面相对比较慢,为链表线性表

4.实例

复制代码
 1 import static org.junit.Assert.*;
 2 import java.util.ArrayList;
 3 import java.util.Arrays;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 import java.util.List;
 7 import org.junit.Test;
 8 import day8.Customer;
 9                 //可以看作长度可变的数组,元素可以重复
10 public class TestArrayList {
11 
12               //遍历操作
13     public void iteratecollection(Collection c){
14         Iterator it=c.iterator();
15         while(it.hasNext()){
16             Object obj=it.next();
17             System.out.println(obj);
18         }
19     }
20     //索引:索引和数组下标类似,为0,1,2.....
21     @Test
22     public void tesList(){
23         List l1=new ArrayList();
24         l1.add(new Customer(1,"AA"));
25         l1.add(new Customer(2,"BB"));
26         l1.add(new Customer(3,"CC"));
27         l1.add(new Customer(4,"DD"));
28         iteratecollection(l1);
29         System.out.println();    
30 
31                //增强for循环遍历操作
32         /*for(Object l :l1){
33             System.out.println(l);
34         }*/  
35         /*//add(int index,Object e)在指定索引处(和数组类似,索引为0,1,2....)放入元素
36         l1.add(3,new Customer(5,"EE"));
37         iteratecollection(l1);
38         System.out.println();*/       
39         //addAll(int index,Collection e)在指定索引放入集合
40         l1.addAll(3,Arrays.asList(new Customer(5,"EE"),new Customer(6,"FF")));
41         iteratecollection(l1);
42         System.out.println();      
43         //Object get(int index)获取指定索引的元素
44         Object obj=l1.get(0);
45         System.out.println(obj);
46 
47 //      Customer cc=(Customer) l1.get(1);   //类型的强制转换
48 //      System.out.println(cc);
49         System.out.println();       
50         //int indexOf(Object o)获取指定元素在集合中的索引(若元素重复,返回元素第一次所在的索引),判定方法为equals(),需要重写equals方法
51         int index=l1.indexOf(new Customer(3,"CC"));
52         System.out.println(index);
53         System.out.println();       
54         //int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引
55         l1.add(new Customer(3,"CC"));
56         int lastindex=l1.lastIndexOf(new Customer(3,"CC"));
57         System.out.println(lastindex);       
58         //Object remove(int index)删除指定索引对应的元素
59         l1.remove(2);     
60         //Object set(int index,Object e)替换指定索引的元素
61         l1.set(2, new Customer(3,"LL"));
62         iteratecollection(l1);
63         System.out.println();        
64         //List subList(int fromIndex, int toIndex)返回索引为[form,to)的元素集合
65         List sublist=l1.subList(1, 3);
66         System.out.println(sublist);    
67     }
68 }
复制代码

涉及的完整代码:http://www.cnblogs.com/jfl-xx/p/4707643.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值