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("大师兄"); //结果是“孙悟空”