zoukankan      html  css  js  c++  java
  • Java集合框架

    Java集合分两大类:Collection和Map。

    经常用到的List和Set接口是Collection的子接口。其中ArrayList和LinkedList类实现了List接口。List接口存储一组不唯一,有序的对象。Set接口存储一组唯一,无序的对象。Map接口存储一组成对的键—值对象,不要求有序,Key值不能重复,value值可重复。ArrayList对数组进行了封装,遍历元素和随机访问元素效率比较高。LikedList采用链表存储方式,插入、删除元素时效率比较高。

            在ArrayList之前还有一个Vector也是List的子接口,他们三个的不同点是:Vector:做多线程。ArrayList做查询。LinkedList做添加删除。java里遍历集合需要用到Iterator接口,此接口和Collection、Map平级。

           在Colleciton接口中提供了一个Iterator<E>接口的的iterator()方法。List和Set都继承了这个方法。但是List自身又提供了一个ListIterator()方法。ListIterator有add()方法,在遍历的时候把权限交给迭代器的时候,可以向List中添加对象。

     ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。

         

              ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。

        

             ListIterator和Iterator 都可实现删除对象,但是ListIterator可以实现对象的修改(仅限在迭代器权限里),set()方法可以实现。Iierator仅能遍历,不能修改。

         常用的实现Map接口的子接口有:HashMap和TreeMap。

         Map接口的遍历方法:

    方式一:迭代器方式map.keySet();因为Map接口本身没有迭代器所以Map有一个方法返回一个Set类型的键集合,通过Set的迭代器取值。  
    
         Map  map=new HashMap();
    
         Map.put(“001”,”Hello”);
    
         Map.put(“002”,”Word”);
    
         //遍历(通过key遍历value)
    
         Set set=map.keySet();
    
         Iterator iterator=Set.iterator();
    
         While(iterator.hasNext()){
    
         String key=(String)iterator.next();
    
         //获取value
    
         String value=map.get(key);
    
         Syso(key+”	”+value);
    
     
    
    方式二:key和value同时遍历(entrySet)
    
        Iterator iterator=map.entrySet().iterator();//此处返回的是一个Set类型的实体集合,一个实体包含一队Key和Value值。
    
        While(iterator.hasNext()){
    
        Map.Entry<String,String > item= (Entry<String,String>)Iterator.next();
    
        Syso(item.getkey()+”	”+item.getValue());
    
     
    
        方式三:key和value遍历(for增强的迭代器)//这个不用Iterator的迭代器了直接用foreatch的迭代器,但是只能在泛型集合里使用如: 
    Map <String,String> map=new HashMap<String,String>(); For(Map.Entry<String,String> item:map.entrySet()){ Syso( item.getKey()+” ”+|item.getValue()); }
  • 相关阅读:
    0099 数据类型转换 之 转为布尔:Boolean()
    0098 数据类型转换 之 转为数字: parseInt 、 parseFloat 、Number()、隐式转换
    0097 数据类型转换 之 转为字符串:toString()、String() 、加号拼接、隐式转换
    0096 获取变量数据类型typeof、字面量
    0095 布尔型Boolean,Undefined和 Null
    0094 字符串型 String
    0093 数字型 Number:整数、小数 、数字型进制、数字型范围、数字型三个特殊值、isNaN
    0092 数据类型、简单数据类型概述
    0091 交换两个变量的值( 实现思路:使用一个 临时变量 用来做中间存储 )
    SCSS 常用属性合集
  • 原文地址:https://www.cnblogs.com/hong-bo/p/10987618.html
Copyright © 2011-2022 走看看