Map
1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
它没有继承Collection接口
// 特点:无序,以键值对的形式存储数据,键不能重复(唯一),值不能重复
Map<String, Object> map = new HashMap<>();
map.put("red", "中国红");
map.put("blue", "天空蓝");
map.put("yellow", "五角星");
// 当键相同时会被覆盖
map.put("red", "像花儿一样红");
System.out.println(map);
1.2 遍历
1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
1.2.2 先取出保存所有Entry的Set,再遍历此Set即可
// 遍历方式(3种)
// 1)获取所有键
System.out.println("--------------获取所有keys的值---------------");
Set<String> set = map.keySet();
for (String string : set) {
System.out.println(string);
}
// 2)获取所有值
System.out.println("--------------获取所有value的值---------------");
Collection<Object> values = map.values();
for (Object object : values) {
System.out.println(object);
}
// 3)获取所有键值对
System.out.println("--------------获取所有的键值对---------------");
Set<Entry<String, Object>> entrySet = map.entrySet();
for (Entry<String, Object> entry : entrySet) {
System.out.println("key---" + entry.getKey() + "values---" + entry.getValue());
}
entrySet.forEach(e -> {
System.out.println(e.getKey() + "---" + e.getValue());
});
HashMap与Hashtable之间的区别(重点)
同步(synchronized)既排队 线程安全的 hashtable
异步 线程非安全的 hashmap
// Connection 是集合框架的顶级接口,是set和list集合的父接口,不是map的父接口
// 特点:无序,以键值对的形式存储数据,键不能重复(唯一),值不能重复
Map<String, Object> map = new Hashtable<>();
map.put("red", "中国红");
map.put("blue", "天空蓝");
map.put("yellow", "五角星");
// 当键相同时会被覆盖
map.put("red", "像花儿一样红");
System.out.println(map);
其它
3.1 Collections:工具类,提供一组静态方法操作Collection集合
3.2 Arrays:工具类,提供了一组静态方法操作数组
package com.zking.utils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
/**
* TreeMap
*
* @author Administrator
*
*/
public class TreeMapDemo {
public static void main(String[] args) {
// treemap 以键排序(升序/降序)
// Comparator.reverseOrder()实行降序
// 默认升序
// 以值排序
Map<String, Object> map = new TreeMap<>(Comparator.reverseOrder());
map.put("思思", 100);
map.put("安安", 100);
map.put("零零", 100);
System.out.println(map);
// 获取遍历
// 以键值对的形式
Set<Entry<String, Object>> entrySet = map.entrySet();
// 将其转换成list集合
List<Map.Entry<String, Object>> list = new ArrayList<>(entrySet);
// Collections
// Collection是顶级集合框架
// Collections是集合框架帮助类
Collections.sort(list, new Comparator<Entry<String, Object>>() {
@Override
public int compare(Entry<String, Object> o1, Entry<String, Object> o2) {
return -(o1.getValue().hashCode() - o2.getValue().hashCode());
}
});
list.forEach(System.out::println);
String str = "1,2,3,4,5";
String[] strings = str.split(",");
// 将数组转换成集合
List<String> asList = Arrays.asList(str.split(","));
System.out.println(asList);
// 将数组Arrays.toString转换成字符串
String string = Arrays.toString(strings);
System.out.println(string);
}
}