List, Set和Map区别

来源:互联网 发布:淘宝客怎么做啊 编辑:程序博客网 时间:2024/05/27 21:14

List:集合中的对象按照检索位置排序,可以有重复对象。

      List直接可以用下标取集合中对象,如list[0]

Set:集合中对象不按特定的方式排序,并且没有重复对象

     Set 貌似只能遍历

     for (String str : set) {
       System.out.println(str);
}

Map:集合中每一个元素包含一对键-值对象,集合中没有重复的键对象,值对象可以重复。

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("wuyihua", 20);
map.put("kexiwang", 21);
map.put("luxiaohu", 25);
System.out.println(map.get("wuyihua")); //输出为20


当然List和Map都是可以遍历的。


Collection 接口下面有List和Set。
List 下面有:
LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全
ArrayList 接口实现类 数组 随机访问 没有同步 线程不安全
Vector 接口实现类 数组 同步 线程安全
对于 List ,关心的是顺序, 它保证维护元素特定的顺序(允许有相同元素),使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素。

Set下面有:
HashSet 保证集合里没有重复对象
TreeSet  不仅保证没有重复对象,还保证集合里对象一直处于有序的排列顺序。

对于 Set ,只关心某元素是否属于 Set (不允许有相同元素 ),而不关心它的顺序。


Map 接口是键值对的集合。如果想用名称来取值,就该选择Map接口。

map.put("大师兄”, “孙悟空”);

map.get("大师兄");  //结果是“孙悟空”




0 0