集合:接口List

来源:互联网 发布:java中吸收回车符 编辑:程序博客网 时间:2024/05/14 22:39

java.util.List(接口)
1.概述
所有集合的超类是Collection,准确的说是根接口。Collection没有直接实现类,它又有List和Set两个子接口,此处介绍List;
它是有序集合,用户可以对列表中每个元素插入的位置进行精确控制。用户可以根据元素索引访问或搜索元素。
与Set不同的是:它允许重复的元素。
List案例:存储字符串并遍历;存储自定义对象并遍历(同Collection的用法一样)
2.List的特点
A.有序:存储和取出的元素一致
B.可重复:可以出现相同的元素
3.List的特有功能

添加功能void add(int index, E element)                       在指定位置添加一个元素boolean addAll(int index, Collection<? extends E> c) 在指定位置添加一个集合元素获取功能E get(int index)          获取指定位置的元素int indexOf(Object o)     获取指定元素的索引(第一次出现位置),没有该元素返-1int lastIndexOf(Object o) 获取指定元素的索引(最后一次出现位置),没有该元素返-1列表迭代器List集合特有的迭代器ListIterator<E> listIterator() 删除功能E remove(int index)         删除指定位置元素,并且返回被删除的元素修改功能E set(int index, E element) 修改指定位置元素,并且返回被修改的元素即改之前的元素   
package knowledge_basic_02;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;public class ListDemo {    public static void main(String[] args) {        //测试List的特点        //用List存储并遍历字符串        List l=new ArrayList();        l.add("abc");        l.add("def");        l.add("123");        l.add("456");        l.add("123");        Iterator it=l.iterator();        while(it.hasNext())        {            String s=(String)it.next();            System.out.println(s);        }        //用List存储并遍历自定义对象,基本和Collection相同        System.out.println("----------------------");        //测试List的特有功能        System.out.println("l:"+l);        //add        l.add(5,"789");        System.out.println("l:"+l);        List l2=new ArrayList();        l2.add("ABC");        l2.add("DEF");        //addAll        l.addAll(6,l2);        System.out.println("l:"+l);        //get        String s=(String)l.get(4);        System.out.println(s);        //indexOf、lastIndexOf        System.out.println(l.indexOf("123"));        System.out.println(l.lastIndexOf("123"));        //remove        System.out.println("remove的元素="+l.remove(4));        System.out.println("l:"+l);        //set        System.out.println("set的元素="+l.set(4, "888"));        System.out.println("l:"+l);        System.out.println("----------------------");        //List集合的遍历        System.out.println("待遍历的List集合:"+l);        //方式1:List的get和size方法相结合来遍:        for(int i=0;i<l.size();i++)        {            String str=(String)l.get(i);            System.out.print(str+" ");        }        System.out.println("\n");        //方式2:List集合特有的迭代器:列表迭代器        //第一步:创建List集合对象        List list=new ArrayList();        //第二步:添加List集合元素        list.add("关羽");        list.add("张飞");        list.add("赵云");        list.add("马超");        list.add("黄忠");        System.out.println("待遍历的List集合:"+list);        //第三步:遍历List集合        //1.创建列表迭代器对象        ListIterator lit=list.listIterator();        //2.1调用列表迭代器的hasNext()、next()顺序遍历        while(lit.hasNext())        {            String str2=(String)lit.next();            System.out.print(str2+"  ");        }        System.out.println("\n");        //2.2调用列表迭代器的hasPrevious()、previous()倒序遍历        while(lit.hasPrevious())        {            String str3=(String)lit.previous();            System.out.print(str3+"  ");        }        //需要注意的是:必须先正向遍历,才能逆向遍历,意义不大                System.out.print("\n"+"----------------------"+"\n");           }}

abc
def
123
456

123

l:[abc, def, 123, 456, 123]
l:[abc, def, 123, 456, 123, 789]
l:[abc, def, 123, 456, 123, 789, ABC, DEF]
123
2
4
remove的元素=123
l:[abc, def, 123, 456, 789, ABC, DEF]
set的元素=789

l:[abc, def, 123, 456, 888, ABC, DEF]

待遍历的List集合:[abc, def, 123, 456, 888, ABC, DEF]
abc def 123 456 888 ABC DEF

待遍历的List集合:[关羽, 张飞, 赵云, 马超, 黄忠]
关羽 张飞 赵云 马超 黄忠

黄忠 马超 赵云 张飞 关羽

0 0
原创粉丝点击