zoukankan      html  css  js  c++  java
  • 集合框架(01)Collection

    1.集合:存储对象。 对象多了用集合存,数据多了用对象存

    2.数组是固定长度,集合是不固定长度;数组是相同数据类型,集合是存储不同类型的对象

    3

    .

    4.为什么会出现这么多的容器那,因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构

    5.集合中存放的不是实体,里面存放的实体的地址,===集合中存储的都是对象的引用(地址)

    6.add方法参数类型是Object,以便于接受任意类型的对象

    7.方法.retainAll()就是去掉交集,保留两个ArrayList中相同的元素

    8.什么是迭代器那?其实就是集合的取出元素的方式

    迭代器的例子:

    package sxy;
    import java.util.*;
    
    public class CollectionDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            List list = new ArrayList();
            list.add("apple");
            list.add("pear");
            list.add("orage");
            
            Iterator it = list.iterator();//迭代器用于遍历集合元素
            while(it.hasNext()){
                sop(it.next());
            }
            
    
        }
    
        private static void sop(Object obj) {
            // TODO Auto-generated method stub
            System.out.println(obj);
        }
    
    }

    9.就是把取出方式定义在集合内部,这样取出方式就可以直接访问集合内容的元素。那么取出方式就被定义成了内部类。而每一个容器的数据结构不同,所以出去的动作细节也不一样,但是都有共性内容的判断和取出,那么可以将写成共性抽取。

    那么这些内部类都符合一个规则,该规则是Iterator,如何获取集合的取出对象那?通过一个对外提供的方法iterator()

    10.Collection:

    -----List:元素是有序的,元素可以重复,因为该集合体系有索引

    -----Set:元素是无序的,元素不可以重复

     利用迭代器对集合中的元素进行操作:

    package sxy;
    import java.util.*;
    
    public class CollectionDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            List list = new ArrayList();
            list.add("apple");
            list.add("pear");
            list.add("orage");
            sop(list);
            
            //在迭代器中,准备删除元素
            Iterator it = list.iterator();
            while(it.hasNext()){
                Object obj = it.next();
                if(obj.equals("pear")){
                    it.remove();
                }
            }
            sop(list);
            
            
    
        }
    
        private static void sop(Object obj) {
            // TODO Auto-generated method stub
            System.out.println(obj);
        }
    
    }

    在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生并发修改异常,所以,在迭代器时,只能用迭代器的方法操作元素,但是Iterator方法时有限得瑟,只能对元素进行判断,取出和删除操作,如果想要其他的操作比如添加,修改等,就需要使用其子接口ListIterator,该接口只能通过List集合的ListIterator方法获取

  • 相关阅读:
    2016年3月3日
    性能测试之我解
    Vim命令合集
    vi-vim常用命令
    架构的本质是
    网站三层架构学习之一 分层式结构
    Spring 4 + Quartz 2.2.1 Scheduler Integration Example
    “城市民族工作条例”详解--建议废止
    字符串匹配处理
    LogBack简易教程
  • 原文地址:https://www.cnblogs.com/sunxiaoyan/p/8644424.html
Copyright © 2011-2022 走看看