一、概念
不同接口之间的存储区别:
(1).Collection接口存储一组不唯一(允许重复)、无序的对象。
(2).Set接口继承 Collection接口,存储一组唯一(不允许重复)、无序的对象。
(3).List接口继承Collection接口,存储一组不唯一 (允许重复)、有序(以元素插入的次序来放置元素,不会重新排列)的对象。
(4).Map接口存储一组成对的键-值对 象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。
list、set、map集合
list和set的区别:
-
List中是可以存放重复元素的。Set接口,它里面的集合,所存储的元素就是不重复的。
-
LIst集合它是一个有序的(元素存与取的顺序相同),它可以存储重复的元素。
-
Set是一个无序的集合(元素存与取的顺序可能不同),它不能存储重复的元素。
List集合中的特有方法
-
void add(int index, Object element)将指定的元素,添加到该集合中的指定位置上
-
Object get(int index)返回集合中指定位置的元素。
-
Object remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素。
-
Object set(int index, Object element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
HashSet
元素唯一,不能重复 底层结构是 哈希表结构
元素的存与取的顺序不能保证一致
LinkedHashSet
元素唯一不能重复 底层结构是 哈希表结构 + 链表结构
元素的存与取的顺序一致
Map集合
saveInMap(receiveAddress,fileName)方法:
Map<key,value> map = new Map<key,value>();
key = fileName;
value = receiveAddress;
map.put(key,value);
Map遍历
-
Entry 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。 Map中采用Entry内 部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry) Map.Entry里面包含getKey()和getValue()方法。
-
entrySet entrySet是 java中 键-值 对的集合,Set里面的类型是Map.Entry,一般可以通过map.entrySet() 得到。 entrySet实现了Set接口,里面存放的是键值对。一个K对应一个V。
用来遍历map的一种方法:
Set<Map.Entry<String, String>> entryseSet=map.entrySet();
for (Map.Entry<String, String> entry:entryseSet) {
System.out.println(entry.getKey()+","+entry.getValue()); }
//即通过getKey()得到K,getValue得到V。
小结
- List接口:ArrayList、LinkedList
- Set接口:HashSet、LinkedHashSet
- Map接口:HashMap