java自学笔记之集合概述一

来源:互联网 发布:数控镗床编程代码 编辑:程序博客网 时间:2024/04/29 06:01


1.集合类存放于java.util包中。

   集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用

2.Collection集合的基本功能测试:Collection c=new ArrayList()

3.Collection集合的高级功能测试:

                                 (1)boolean addAll(Collection c):添加一个集合的元素
                                 (2)boolean removeAll(Collection c):移除一个集合的元素,只要有一个被移除了就返回true
                                 (3)boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。只有包含所有的元素,才返回true
                                 (4)boolean retainAll(Collection c):找出两个集合中相同的元素。返回的布尔类型表示调用这个方法的集合中的元素是否发生改变
                                      改变了就返回true,没改变就返回false.

4.集合的遍历之集合转数组遍历:

                               (1):Object[] toArray():把集合转换成数组,可以实现集合的遍历

                               (2)代码:

                       Object[] objs=c.toArray();               for(int x=0;x<objs.length;x++){       //System.out.print(objs[x]+" ");        String s=(String)objs[x];       System.out.println(s+"------"+s.length());                       }

5.Collection集合的遍历之迭代器遍历:

                                  (1)Iterator iterator():迭代器,集合的专用遍历方式
                                 (2)Object next():获取元素,并移动到下一个位置
                                 (3)boolean hasNext():如果仍有元素可以迭代,则返回true

                                (4)代码:

                       Iterator it=c.iterator();              while(it.hasNext()){        //System.out.println(it.next());         String s=(String)it.next();       System.out.println(s);                      }
6.迭代器使用问题的探讨:不要多次使用it.next()方法,因为每次使用都是访问一个对象

7.List集合特有的功能概述和测试:

                                 (1)添加功能:void add(int index,Object element)          
                                 (2)获取功能:Object get(int index)
                                 (3)列表迭代器:ListIterator listIterator():List集合特有的迭代器
                                 (4)删除功能:Object remove(int index):根据索引删除元素,返回被删除的元素(还有别的方法,不只这一个)
                                 (5)修改功能:Object set(int index,Object element):根据索引修改元素,返回被修改的元素

8.List集合的特有遍历功能:

                              (1)直接for循环

                 for(int x=0;x<list.size();x++){   String s=(String)list.get(x);    System.out.print(s+" ");                  }
9.ListIterator的特有功能:
                                 (1)ListIterator listIterator():List集合特有的迭代器(当然也有Collection的迭代器)
                                    该迭代器继承了Iterator迭代器,所以就可以直接使用hasNext()和next()方法
                                 (2)特有功能:
                                            Object previous():获取上一个元素
                                            boolean hasPrevious():判断是否有元素
                                   *ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。

10.并发修改异常的产生原因及解决方法:
                                 (1)ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常
                                 (2)产生的原因:迭代器是依赖于集合而存在的,在判断成功后,集合中新添加了元素,而迭代器却不知道,所以就报错,这个错叫并发修改异常
                                 (3)如何解决:A:迭代器迭代元素,迭代器修改元素
                                               而Iterator迭代器没有添加功能,所以我们使用其子接口ListIterator
                                              代码:

                           List list=new ArrayList();                   list.add("hello");                   list.add("world");                   list.add("java");                           ListIterator lit=list.listIterator();                   while(lit.hasNext()){           String s=(String)lit.next();           if("world".equals(s)){           lit.add("javaee");              }                        }                    System.out.println(list);                         * 结果:[hello, world, javaee, java]
11.B:集合遍历元素,集合修改元素(普通for循环)
                                               代码
                          List list=new ArrayList();                 list.add("hello");                 list.add("world");                   list.add("java");                           for(int x=0;x<list.size();x++){           String s=(String)list.get(x);          if("world".equals(s)){             list.add("javaee");                 }                      }                  System.out.println(list);                       结果:[hello, world, java, javaee] 





                                        

                                



                                      

0 0