(集合二)Collection、List、集合数组转换、Iterator迭代器示例

Collection接口方法:

                    ①boolean add(E e):向集合末尾添加指定元素

                   ②boolean addAll(Collection c)addAll(int index,Collectionc)向集合内(指定位置index)添加另一集合的全部元素

                    ③void clear():清空集合,可用于多次使用单个集合对象,节省资源

                    ④boolean contains(Object o):判断是否含有某个对象,底层调用equals方法进行比较(equals方法比较内容,双等号比较的是地址)

                    ⑤boolean containsAll(Collection c):判断本集合中是否含有集合c的所有元素

                    ⑥boolean remove(Object o):移除集合中的一个元素

                    ⑦boolean removeAll(Collection):移除集合中集合c含有的所有元素

                    ⑧boolean isEmpty():判断集合是否为空

                    ⑨boolean equalse(Object):比较两集合长度与索引所对应元素是否一样

                    ⑩bollean retainAll(Colection):保留该集合与括号中集合中的相同元素

 

List 接口方法:

                    ①boolean add(E e):向列表末尾添加指定元素

                    ②void add(int endex,E element):在列表指定位置添加元素

                    ③boolean addAll(Collection c):将集合c中的所有元素添加到列表的结尾

                    ④boolean addAll(int index,Collection c):将集合c中所有元素添加到列表的指定位置

                    ⑤E get(int index):返回列表指定位置的元素

                    ⑥int indexOf(Obfect obj):返回列表中指定元素第一次出现的位置,如果没有该元素,返回-1

                    ⑦int lastIndexOf(Object obj):返回列表中指定元素最后一次出现的位置,如果没有该元素,返回-1

                    ⑧E remove(int index):移除集合中指定位置的元素,返回被移除掉的元素对象

                    ⑨E set(int index,E element):用指定元素替换指定位置上的元素,返回被替换出的元素对象

                    ⑩int size():获取集合元素的个数

                    ⑪List subList(int fromIndex,int toIndex):截取子集,返回集合中指定的fromIndex到toIndex之间部分的视图,包前不包后,当对子集进行操作时,父集会受到影响,即处理的数据为同一地址的数据。子集对象地址与父集对象地址不为同一个。

 

集合转换为数组:

                    ①Object[] toArray():将集合转成Object类型的数组(不常用)

                    ②E[] toArray(E[] e):将集合转换成泛型规定的类型的数组(常用)

                    举例:

                            现假如有一point类;
                            属性:横坐标x,纵坐标y;
                            方法:无参构造方法,有参构造方法,set方法,get方法

                            第一种集合转数组方式
                            public static void main(String[] args){
                                List list=new ArrayList();
                                list.add(new Point(1,2));
                                list.add(new Point(3,4));
                                list.add(new Point(5,6));
                                Object[] Obj=list.toArray();
                                System.out.println(Arrays.toString(Obj));
                                //此时输出结果为[(1,2),(3,4),(5,6)]
                                /*System.out.println(Obj[0].getX);
                                  此时发现Obj[0].getX方法行不通,为什么?因为在list转变为数组时,Obj数组内的
                                  对象类型为[Object,object,object],而object类中并没有getX方法,所以报错。那
                                  么现在就需要对数组进行类型转换
                               */
                               if(Obj[0] instanceof Point){
                               Point p1=(Point)Obj[0];
                               System.out.println(p1.getX());
                               }
                            }

                            第二种结合转数组方式
                            public static void main(String[] args){
                            Point[] ps=list.toArray(new Point[0]);
                            }

 

数组转换成集合:

                    Arrays类中提供了一个静态方法asList,此方法可以将数组对象转换成集合。

                    static List asList(T...a),返回的List的集合元素类型由传入的数组的元素类型决定。

                    注:对于返回的集合我们不能对其进行增删改操作,否则抛出异常。并且对集合的元素修改会影响数组对应的元素。如果想对集合进行增删改,可以将此集合里的元素添加到另外一个集合中进行操作

                     举例:

                             public static void main(String[] args){
                                 String[] Test={"方","法","测","试"};
                                 List list=Arrays.asList(Test);
                                 System.out.println(list);
                                 //此时输出结果为[方,法,测,试]
                                 list.add("添加");
                                 //此时系统会抛出异常,如果想对其进行操作,可以将该集合添加到另一集合中
                                 List other=new ArrayList();
                                 other.addAll(list);
                                 other.add("添加");
                                 //此时输出结果为[方,法,测,试,添加]
                             }

 

Iterator迭代器(interface):

                    用于遍历集合元素,Collection接口中提供了获取迭代器的构造器

                    集合在重写此方法时,利用内部类实现了迭代器

                    在使用迭代器期间不能对集合进行操作

                    Iterator提供了统一的遍历集合元素的方式:

                        ①boolean hasNext():判断集合是否还有元素可以遍历

                        ②E next():返回迭代的下一个元素

                        ③void remove():删除取出的元素,即next()方法返回的元素

 

 

你可能感兴趣的:((集合二)Collection、List、集合数组转换、Iterator迭代器示例)