码迷,mamicode.com
首页 > 编程语言 > 详细

菜鸟日记之 java中的集合框架

时间:2015-10-27 00:24:14      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

                                 

                   java中的集合框架图

 

                            技术分享

 

                  如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合

                         Collection单列集合:继承了Iterator接口所以具有了iterator()方法 ,该方法返回一个Iterator<T>,这个接口具有

                         HasNext (),next(),remove()3个方法可以在实现类里完成实现。

                                  hasNext():判断是否有下一个元素

                                                     技术分享

                                             技术分享cusor是当前的操作下标

                                  next():读取下一个元素

                                                       技术分享

                                  remove():删除参数 

                                                               技术分享

                                                                    技术分享  lastret为上个操作的下标

  Collection有两个子接口set和list

       set:储存唯一,不要求有序的一组对象

            set存储的是元素的引用,如两个元素的引用相等,或者其值相等,hash值也想相等,则set只保存一个同理set集合中只有一个null

                                                         例:

                                                                     Set  set=new HashSet

                                                                     String a=" ";

                                                                     String  b=a;

                                                                      set.Add(a);

                                                                      set.add(b);

                                                                    //输出集合set的元素个数

                                                                 System.out.println(set.size());              //结果是1个   :两者的引用为一个所以只能添加一个

             list:存储一组不唯一,但有序的对象

                  list的两个实现类:

                   ArrayList:与数组相同的存储方式,但是完成了存储集合的大小可变的改变比数组更灵活。

 

                   LinkedList:链式储存,集合的每一项都储存了下一项的引用,更利于元素的新增和删除操作,相比后ArrayList查询和修改,LinkedList新    增和删除

                   其实在ArrayList之前还有一个Vector集合类,他与ArrayList基本相同,最大的区别就是Vector是线程安全的,而ArrayList是线程不安全                                        的。ArrayList轻安全,而速度快,Vector线程安全,但速度慢。

       Map:双列集合: 集合中的每一项都是成对的key ,value Map接口并不继承Iterable接口或实现该接口所以不能直接进行遍历

                                                     

                              key:有唯一,不要求有序

                              value:不唯一,不要求有序

                               Map集合遍历的三种方法:

                                   

    public static void main(String[] args) {

          Map<String,String> map=new HashMap<String,String>();
          map.put("CN", "中华人民共和国");
          map.put("UK","联合国");
      
        //方法1 双列集合无法遍历了?那就通过方法把他转成单列 ! 用集合名.entryset方法 得到Set<Entry<String, String>>的返回值
          for (Entry item : map.entrySet()) {
            System.out.println(String.format("key的值是%s\tvalue的值是%s",item.getKey(),item.getValue()));
          }
          
        //方法2 通过得到key键的集合,然后通过Map的方法map.get(key)用key得到value
          for (String key : map.keySet()) {
            System.out.println(String.format("key的值是%s\tvalue的值是%s",key,map.get(key)));
          }
          //方法3for循环中自动实现了迭代器,如不用for循环,那就手动完成迭代器操作
          Iterator<String> keys=map.keySet().iterator();
          while(keys.hasNext()){
             String item=keys.next();
              System.out.println(String.format("key的值是%s\tvalue的值是%s",item,map.get(item)));
          }
          
          
    }

  如果只是想遍历value的值那直接使用 map.values()方法就行了;

                          注:所有继承或实现了Iterable类的集合类都可以用迭代器进行遍历

     例:

ArrayList(继承)-  AbstractList -(在这个ArrayList的父类中实现了继承自 Iterable的iterator方法,并得到了该方法返回的类Iterator及其的3个方法,实现了他们之后使自身可使用迭代器) -  implements(实现) -- List    extends (继承)  -   Collection   extends (继承)- Iterable        所有可以使用迭代器的集合类都有相似的继承,实现关系。

 

                                

菜鸟日记之 java中的集合框架

标签:

原文地址:http://www.cnblogs.com/xiangtianxiayu/p/4912886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!