集合框架

来源:互联网 发布:淘宝客服与买家对话 编辑:程序博客网 时间:2024/05/29 05:12

对象容器分为Set和List和Map

Set类型中对象没有顺序且不能重复,List类型中对象按照索引顺序排序,可以有重复的对象,Map类型中对象包含一堆键对象-值对象映射,键对象不能重复,值对象可以重复,三个储存方式对应三个接口。

Set接口及其实现类——HashSet


  Set是元素无序并且不可以重复的集合,被称作集。


  HashSet—哈希集,是Set的一个重要实现类。

Set的使用
    HashSet没有像List一样的set()方法来用指定元素替换指定位置的元素,因为Set集合的元素是无序的。同样也不能用访问索引的方式来获取指定位置的元素。 


   例:Set<String> set = new HashSet<String>();
     set.add("asds");
     set.add("bsdf");
     set.add("cfg");
     set.add("esdf");
     set.add("gffgh");
     for(String str : set){
     System.out.println(str);
     }
List接口及其实现类——ArrayList


  List是元素有序并且可以重复的集合,被称为序列;可以精确的控制每个元素的插入位置,或删除某个位置元素;ArrayList是数组序列,底层是由数组实现的。


  例:List<String> ss = Arrays.asList("a","b","c","d");
    for(String s : ss){
    System.out.println(s);
    }

Map接口


  Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,key和value可以是任意类型的对象,能够实现根据key快速查找value。


  Map中的键值对以Entry类型的对象实例形式存在。


  键(key值)不可重复,value值可以。


  每个键最多只能映射到一个值,一个值可以对应多个键。


  Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法。Entry类是Map的一个内部类。


  Map支持泛型,形式如:Map<Key值类型,V值类型>


HashMap类
  HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现。


  HashMap中的Entry对象是无序排列的。


  Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射。


      例:Map<Integer,String> map = new HashMap<Integer,String>();


      map.put(28, "鹿晗");
      map.put(20, "杨一杏");
      map.put(35, "陈伟霆");
      map.put(46, "易烊千玺");


      Set<Integer> keys = map.keySet();


      for(int i : keys){
        System.out.println(i + "=====" + map.get(i));
      }

0 0