集合映射

 
集合映射
Import Java.util.*;
一.映射Map
Map把关键字Key映射到值Value, 即所谓的Key/Value对。
1. HashMap
HashMap是基于Hash table 的接口,但是它不能保证集合中元素的顺序。当使用HashMap的一些基本操作(put()或get())时,所消耗的时间是很稳定的。
影响hashmap性能的因素:
I.                    初始容量的大小
II.                 加载参量
Eg:
    publicstaticvoid 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
LinkedHashMapHashMap的子类,它具有已知的迭代顺序(在使用iterator)时。
他维护了一个双向链表,这个链表的顺序决定了迭代的输出顺序。
需要注意的是:当一个重复元素被插入时,并不会影响原来的连标的顺序,实际上重复的key也不会被插入。
Eg.
    Map map = new LinkedHashMap();
    同上
3.TreeMap
TreeMap类实现了Map接口。TreeMap提供了按排序顺序存储关键字/对的有效手段。应该注意的是,不像散列映射(HashMap),树映射(TreeMap)保证它的元素按照关键字升序排列。下面是TreeMap构造函数:
   TreeMap<K,V>()
   TreeMap<K,V>(comparator<K> comp)
 
这里TreeMap是j2se中唯一实现SortedMap接口的类,他使用红黑书结构来对加入的对象进行排序,默认的排序方式是采用Key值升序字典排序。
Eg:
    publicstaticvoid 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:
    publicstaticvoid 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:
    publicstaticvoid 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、付费专栏及课程。

余额充值