1、最简易的list转map
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("1");
list.add("3");
list.add("3");
list.add("4");
list.add("10");
list.add("5");
list.add("6");
list.add("2");
Map<String, String> newmap = new HashMap<>();
for (String integer : list) {
//map中不包含进map 有重复值取最第一条
if (!newmap.containsKey(integer)) {
newmap.put(integer, integer);
}
}
for (String integer1 : newmap.keySet()) {
System.out.println(newmap.get(integer1));
}
}
2、流式编程的list转map
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("1");
list.add("3");
list.add("3");
list.add("4");
list.add("10");
list.add("5");
list.add("6");
list.add("2");
//(o1,o2)->o1 代表有重复的取前面的 想取后面的 改成(o1,o2)->o2
Map<String, String> newmap = list.stream().collect(Collectors.toMap(o -> o, Function.identity(), (o1, o2) -> o1));
for (String integer1 : newmap.keySet()) {
System.out.println(newmap.get(integer1));
}
}
3、常用list转成map里面的list
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("1");
list.add("3");
list.add("3");
list.add("4");
list.add("10");
list.add("5");
list.add("6");
list.add("2");
Map<String, List<String>> strMap = new HashMap();
for (String str : list) {
if (!strMap.containsKey(str)) {
List<String> strList = new ArrayList<>();
strList.add(str);
strMap.put(str, strList);
} else {
List<String> strList = strMap.get(str);
strList.add(str);
strMap.put(str, strList);
}
}
}
3、流式编程list转成map里面的list
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("1");
list.add("3");
list.add("3");
list.add("4");
list.add("10");
list.add("5");
list.add("6");
list.add("2");
Map<String, List<String>> strMap = list.stream().collect(Collectors.groupingBy(item->item));
for (String s : strMap.keySet()) {
System.out.println(s);
}
}