黑马程序员_集合中List和Set

来源:互联网 发布:启用视频网络 编辑:程序博客网 时间:2024/04/30 23:24

———– android培训、 java培训

、java学习型技术博客、期待与您交流! ——-

Collection接口有两个子接口: List(列表),Set(集)

 List:可存放重复元素,元素存取是有序的。 Set:不可以存放重复元素,元素存取是无序 的

List集合中常用的类

Vector:线程安全,但速度慢,已被 ArrayList 替代。ArrayList:线程不安全,查询速度快。LinkedList:链表结构,增删速度快。 取出LIst集合中元素的方式: get(int  index)通过脚标获取元素。 iterator():通过迭代方法获取迭代器对象

集合框架-List集合的常见方法

    public class Collection08_1 {    public static void main(String[] args) {        List list1=new ArrayList();        show(list1);    }    private static void show(List list) {            //添加元素                list.add("abc1");                list.add("abc2");                list.add("abc3");                System.out.println(list);                //插入元素                list.add(1,"abc9");                System.out.println(list);                //修改元素                System.out.println("set:"+list.set(1,"abc7"));                //返回被修改的元素                System.out.println(list);                //获取子列表                System.out.println("sublist:"+list.subList(1, 2));//包含1,不包含2                System.out.println(list);    }}

集合框架-ListIterator接口

    public class Collection09_1 {        public static void main(String[] args) {            List list=new ArrayList();    //      show(list);            list.add("abc1");            list.add("abc2");            list.add("abc3");            ListIterator it=list.listIterator();                ////获取列表迭代器对象            //它可以实现在迭代过程中完成对元素的增删改查                                            //只有list集合具备该功能            while(it.hasNext()){                Object obj=it.next();                if(obj.equals("abc2")){                    it.add("abc9");                }else{                    System.out.println(list);                }            }            System.out.println("previous:"+it.previous());        /*  Iterator it=list.iterator();            while(it.hasNext()){                Object obj=it.next();      //java.util.ConcurrentModificationException                if(obj.equals("abc2")){                    list.add("abc9");                }else{                    System.out.println("next:"+obj);                }            }            System.out.println(list);//在迭代器过程中,不要使用集合操作元素,容易报异常//可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作*/      }        private static void show(List list) {            list.add("abc1");            list.add("abc2");            list.add("abc3");            list.add("abc4");            Iterator it=list.iterator();            while(it.hasNext()){                System.out.println("next:"+it.next());            }            //list的特有取去方式元素的方式之一            for(int x=0;x<list.size();x++){                System.out.println("get:"+list.get(x));            }        }}

Collection

    |--List:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。    |--Set:元素不可以重复,无序。List:特有的常见方法:有一个共性特点就是都可以操作角标。1.添加        void   add(index,element);    void   add(index,collection);2.删除    Object    remove(index);3.修改    Object   set(index,element);    4.获取    Object    get(index);    int    indexOf(object);    int     lastIndexOf(object);    List    subList(from,to);List集合是可以完成对元素的增删改查。List:    |--Vector:内部是数据数据结构,是同步的。增删,查询都很慢    |--ArrayList:内部是数据数据结构,是不同步的。替代了Vector。查询的速度快。    |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度非常快。LinkedList:    addFirst();    addLast();    jdk1.6    offerFirst();    offerLast();    getFirst();//获取但不移除,如果链表为空,抛出NoSuchElementException    getLast();    jdk1.6    peekFirst;//获取但不移除,如果链表为空,返回null.    removeLast();    jdk1.6    pollFirst();//获取并移除,如果链表为空,返回null.    pooLast();
0 0
原创粉丝点击