Доброго времени суток.
Все никак не могу одолеть эти мапы(
Вроде как что-то понятно, но ничего не понятно
может кто объяснить?
Map.Entry - почему тут интерфейс через точку (и как вообще это работает)?
Iterator<Map.Entry<String, Integer>> iter = map.entrySet().iterator(); - вот тут вообще проблема map.entrySet().iterator() что делает entrySet() и что делает iterator(), почему они через точку?
package com.javarush.task.task08.task0818;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/*
Только для богачей
*/
public class Solution {
public static HashMap<String, Integer> createMap() {
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i<10; i++) {
map.put("kolya"+i, i*100+300);
}
return map;
//напишите тут ваш код
}
public static void removeItemFromMap(HashMap<String, Integer> map) {
System.out.println("размер мап до удаления " + map.size());
Iterator<Map.Entry<String, Integer>> iter = map.entrySet().iterator();
for(;iter.hasNext();) {
Map.Entry<String, Integer> pair = iter.next();
System.out.println(pair.getValue());
if (pair.getValue() < 500) {
iter.remove();
}
}
System.out.println("размер мап после удаления " + map.size() + map.get("kolya1"));
/*Iterator<Map.Entry<String, Integer>> iter1 = map.entrySet().iterator();
for(;iter1.hasNext();) {
Map.Entry<String, Integer> pair1 = iter.next();
//System.out.println(pair.getValue());
/*if (pair.getValue() < 500) {
iter.remove();
}*/
}
//напишите тут ваш код
}
public static void main(String[] args) {
/*Iterator<Map.Entry<String, Integer>> iter = createMap().entrySet().iterator();
for (;iter.hasNext();) {
Map.Entry<String, Integer> pair = iter.next();
System.out.println(pair.toString());
}*/
removeItemFromMap(createMap());
}
}