目录
一.Map集合的特点
二.Map集合的遍历方式
三.排序
四.数组和集合之间的转化
Collection接口:集合框架顶级接口,是List和Set的父接口,是Map的父接口
1.Map特点:
1)无序
2)以键值对形式存储数据, 键唯一, 值不唯一
3)没有继承Collection接口
/**
* HashMap与hashtable的区别(重点)
*/
// 异步 不安全
// Map<String, Object> map = new Hashtable();
// 线程安全的 同步(排队)
/*
* public synchronized int size() { return count; }
*/
// 异步 不安全
// Map<String, Object> map = new Hashtable();
// 线程安全的 同步(排队)
/*
* public synchronized int size() { return count; }
*/
Map<String, Object> map = new HashMap<>();
map.put("name", "zs");
map.put("sex", "boy");
map.put("gae", "21");
// 问题:如何键相同,值如何处理?(覆盖了)
map.put("name", "ww");
map.put("score", 21);
System.out.println(map);
2.遍历方式(三种)
1)获取所有的keys
System.out.println("=========获取所有的keys===========");
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key);
}
2)获取所以的values
Collection<Object> values = map.values();
for (Object object : values) {
System.out.println(object);
}
3)获取所有的键值对
Set<Entry<String, Object>> entrySet = map.entrySet();
for (Entry<String, Object> entry : entrySet) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
// TreeMap
// 1)按照Key排序
// 1.1)默认按照Key升序排序
// 1.2)通过Compartor.reverseOrder()方法实现key的降序排序
// 2)按照Values排序
Map<String, Object> map = new TreeMap<>(Comparator.reverseOrder());
// 只有map有put添加方法
map.put("zs", "100");
map.put("ls", "110");
map.put("ww", "80");
System.out.println(map);// 现在是无序
// 2)按照Vlues排序
// 获取键值
Set<java.util.Map.Entry<String, Object>> entrySet = map.entrySet();
List<java.util.Map.Entry<String, Object>> lst = new ArrayList<>(entrySet);
// 使用Collection帮助类进行排序
// 面试题:Collection:集合顶级框架
// Collections:集合框架帮助类
Collections.sort(lst, new Comparator<java.util.Map.Entry<String, Object>>() {
@Override
public int compare(java.util.Map.Entry<String, Object> o1, java.util.Map.Entry<String, Object> o2) {
// Student s=o1.getValue();
// Student s1=o2.getValue();
// s1.getsid();
return o1.getValue().hashCode() - o2.getValue().hashCode();
}
});
lst.forEach(System.out::println);
// Collections.get 还有很多方法
// 将数组转换成集合
String str = "1,2,3,4,5,6";
String[] split = str.split(",");
List<String> asList = Arrays.asList(split);
String ss = Arrays.toString(split);
System.out.println(ss);