list、set、map区别

  list是有序且重复的;

  list中的数据都是按照写入的顺序排列的,存入list的数据用add方法写入;

  list可以用循环遍历list以达到获取全部数据的目的,同时也可以通过下标get(index)获得某一个位置的数据。

  list如需获取数据的长度,需通过.size()方法来获取,而不是.length方法。

  set是无序且不重复的;

  set写入的数据如果相同的话,后面写入的数据则会覆盖前面写入的数据,set中也是通过add 方法来写入元素的。

  set是无序的,所以无法通过下标来访问某一个元素,如果要获取set中的数据就需要通过迭代器Iterator类来获取,通过Iterator类中的方法来得到set中的元素。

  map和list、set都有所不同,map中的数据都是成对出现的,一组数据叫做key,一组叫做value,其中key是唯一的,一个key可以对应多个值,而一个value只能对应一个key,因为这种关系,所以可以通过访问key而获取value的数据。

  map可以是通过map中的keySet方法将key转化为set,然后再用迭代器获取key的数值,在使用map中的get 方法获得value的值。也可以用key得到value值。

  eg:

    Map<String, Object> map=new HashMap<String, Object>();
    map.put("3333", "333");
    map.put("1111", "111");
    map.put("2222", "222");
    map.put("4444", "444");
    Set set=map.keySet();
    for (Iterator iterator = set.iterator(); iterator.hasNext();) {
    Object object = (Object) iterator.next();
    System.out.println(map.get(object));
    }

  list比较适用于存储需要精确有序读取某一个位置的数据.

  set是当不需要重复的数据或者筛选出不重复的数据时来存储数据。

  map则可以使用来存储需要成对出现的数据,如账户和密码;

上一篇:solr facet查询及solrj 读取facet数据[转]


下一篇:big_menu菜单设置