遍历
public static void main(String[] args) {
TestForMap tfm = new TestForMap();
Map mapTwo = new HashMap<>();
Map map = new HashMap();
map.put("a", 10);
map.put("b", 15);
map.put("c", 25);
map.put("d", 30);
// System.out.println(tfm.getSame(map));
System.out.println(map.getOrDefault("e", 0));
//第一种遍历方式
// int sum = 0;
// for (Integer num : map.values()) {
// sum += num;
// }
// 第二种遍历方式
// Iterator> it = map.entrySet().iterator();
// while(it.hasNext()){
// sum+=it.next().getValue();
// }
// 第三种遍历方式
// for(Map.Entry str : map.entrySet()){
// sum+=str.getValue();
// }
// 第四种遍历方式
// for(String str : map.keySet()){
// sum+=map.get(str);
// }
// System.out.println(sum);
}
求和
public class Test {
static Tree a = new Tree("lisi", 20);
static Tree b = new Tree("zhangsan", 30);
static Tree c = new Tree("wangwu", 40);
static Tree d = new Tree("lisi", 40);
static Tree e = new Tree("lisi", 50);
public static void main(String[] args) {
Integer list1 = mapone.entrySet().stream().filter(key -> key.getKey().getName().equals("lisi")).mapToInt(key ->key.getValue()).sum();
System.out.println(list1);
改变value的类型
Map mapChange = mapTwoList.entrySet().stream().collect(Collectors.toMap(k->k.getKey(), v->(long)v.getValue()));
根据key/value排序
//ASC
map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
System.out.println(sortedMap);
//DESC Collections.reverseOrder || reversed()
map.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.forEachOrdered(x -> sortedMap2.put(x.getKey(), x.getValue()));
System.out.println(sortedMap2);
map = map.entrySet().stream()
//DESC
// .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
//ASC
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue(), (x1, x2) -> x2, LinkedHashMap::new));