遍歷
public static void main(String[] args) {
TestForMap tfm = new TestForMap();
Map<String, String> mapTwo = new HashMap<>();
Map<String, Integer> map = new HashMap<String, Integer>();
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<Map.Entry<String, Integer>> it = map.entrySet().iterator();
// while(it.hasNext()){
// sum+=it.next().getValue();
// }
// 第三種遍歷方式
// for(Map.Entry<String,Integer> 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<Object, Long> mapChange = mapTwoList.entrySet().stream().collect(Collectors.toMap(k->k.getKey(), v->(long)v.getValue()));
根據key/value排序
//ASC
map.entrySet().stream()
.sorted(Map.Entry.<String, Integer>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.<String, Integer>comparingByValue())
.collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue(), (x1, x2) -> x2, LinkedHashMap::new));