集合映射

 
集合映射
Import Java.util.*;
一.映射Map
Map把关键字Key映射到值Value, 即所谓的Key/Value对。
1. HashMap
HashMap是基于Hash table 的接口,但是它不能保证集合中元素的顺序。当使用HashMap的一些基本操作(put()或get())时,所消耗的时间是很稳定的。
影响hashmap性能的因素:
I.                    初始容量的大小
II.                 加载参量
Eg:
    public static void main(String[] args) {
       // TODO Auto-generated method stub
        Map map= new HashMap();   // 初识容量为 16
        map.put( "stu1" , "tom" );
        map.put( "stu2" , "tomclus" );
        map.put( "stu3" , "spark" );
       
        System. out .println(map.get( "stu1" ));
        // 通过 value 集合输出 objects
        Collection collection=map.values();
        Iterator iterator=collection.iterator();
        while (iterator.hasNext())
        {
        System. out .println(iterator.next());
        }
    }
 2.LinkedHashMap
LinkedHashMap HashMap 的子类,它具有已知的迭代顺序(在使用 iterator )时。
他维护了一个双向链表,这个链表的顺序决定了迭代的输出顺序。
需要注意的是:当一个重复元素被插入时,并不会影响原来的连标的顺序,实际上重复的 key 也不会被插入。
Eg.
    Map map = new LinkedHashMap();
    同上
3.TreeMap
T reeMap 类实现了 Map 接口。 TreeMap 提供了按排序顺序存储 关键字 / 对的有效手段。应该注意的是,不像散列映射( HashMap ),树映射( TreeMap )保证它的元素按照关键字升序排列。下面是 TreeMap 构造函数:
   TreeMap<K,V>()
   TreeMap<K,V>(comparator<K> comp)
 
这里TreeMap是j2se中唯一实现SortedMap接口的类,他使用红黑书结构来对加入的对象进行排序,默认的排序方式是采用Key值升序字典排序。
Eg:
    public static void main(String[] args) {
       // TODO Auto-generated method stub
        Map map= new TreeMap();   // 初识容量为 16
        map.put( "a" , "tom" );
        map.put( "bb" , "tomclus" );
        map.put( "ba" , "spark" );
       
        System. out .println(map.get( "stu1" ));
        // 通过 value 集合输出 objects
        Collection collection=map.values();
        Iterator iterator=collection.iterator();
        while (iterator.hasNext())
        {
        System. out .println(iterator.next());
        }
    }
 
二.映射Set
Set接口继承自Collection接口,Set容器中的对象都是唯一的,加入Set容器中的对象都必须重新定义!
1. HashSet
HashSet类实现了Set接口,但不能保证按照对象加入的顺序在其和中排序,也不能按照hashcode排序
EG:
    public static void main(String[] args) {
       // TODO Auto-generated method stub   
        Set set = new HashSet();
        set.add( "a" );
        set.add( "b" );
        set.add( "c" );
        set.add( null );
        set.add( "d" );    
        // 遍历这个集合类 set
        Iterator iterator = set.iterator();
        while (iterator.hasNext())
        {
        String temp = (String)iterator.next();
        if (temp!= null )
            System. out .print(temp+temp.hashCode()+ " " );
        else
            System. out .print( "null " );
        }
    }
2. 同时有 LinkedHashSet and TreeSet
 
. 映射 List
List 接口是 Collection 接口的子接口,它是一个有序的集合,类适于列队。
ArrayList and LinkedList
 
1.    ArrayList
ArrayList 时使用一维数组实现 List 接口,所以对快速的随机数局的想象来说是用 ArrayList 可以得到较好的效能。
EG:
    public static void main(String[] args) {
       // TODO Auto-generated method stub   
        List<String> list = new ArrayList<String>(); // 范型
        list.add( "a" );
        list.add( "b" );
        list.add( "c" );
    list.add( "d" );    
    System.out.println(“ 显示 list 中的内容 ”);
For(int i=0;i<list.size();i++)
 {
     System.out.pritnln(list.get(i));
}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值