1.Map(接口)
1.是双列"集合" ---->(增删改查,遍历)
2.键不能重复,值可以重复
2.Map常见的实现类
1.HashMap<K,V>
增:(add,put,insert,append)
put(K key,V value); ---> 往集合中添加一对元素.
改:(set,alter,update)
put(K key,V value); ---> 当键存在时,会修改其值.
删:(remove,delete)
remove(Object key); ---> 根据键删除键值对
查:(get,select)
V get(Object key); ---->根据键获取其对应的值
Set<K> keySet(); ----> 获取所有的键, 将所有键放到Set集合中返回
Collection<V> values(); ---->获取所有的值, 将所有的值放到一个Collection集合返回
其他:
boolean isEmpty(); ---->判断集合长度是否为0
void clear(); ---->清空集合
boolean containsKey(Object key); --->判断集合是否包含某个键
boolean containsValue(Object value); --->判断集合是否包含某个值
int size(); --->获取集合的长度
遍历:
观察发现map不能直接使用for循环和迭代器,间接遍历map集合
1.keySet方法----> 通过找到所有的键, 遍历所有的键, 去获取对应的值
Map<String,String> map = new HashMap();
Set<String> keys = map.keySet();
//使用迭代器遍历set集合
Iterator<String> it = keys.iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
System.out.println(key+"::"+ value);
}
2.entrySet方法---->
Map<String,String> map = new HashMap();
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> entry : entries) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"::"+ value);
}
3.Collections
静态方法
static <T extends Comparable<? super T>> void sort(List<T> list) ---->对集合排序,要求元素必须和Comparable有关系
static <T> void sort(List<T> list, Comparator<? super T> c) --->对集合排序, 需要传入一个比较器
reverse(List list); ---->反转集合
shuffle(List list) ---->随机置换集合中的元素
static <T> boolean addAll(Collection<? super T> c, T... elements) ----> 将后面的元素添加到前面集合中
限定集合的泛型一定是元素类型或者元素类型的父类型