powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap - как убрать не нужную запись?
3 сообщений из 3, страница 1 из 1
HashMap - как убрать не нужную запись?
    #38153897
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно очистить запись из хешмапы, в которой попадаются летние месяцы.
Проблема с закомментированной строкой, как правильно?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;

public class Solution_1
{
    
	@SuppressWarnings("deprecation")
	public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("Сталлоне", new Date("January 1 1980"));
        map.put("Сильвестр", new Date("January 1 1980"));
        map.put("Вандамм", new Date("January 1 1980"));
        map.put("Кинконг", new Date("January 3 1980"));
        map.put("Брюсли", new Date("January 1 1980"));
        map.put("Чакнорис", new Date("January 1 1980"));
        map.put("Чичолинна", new Date("January 1 1980"));
        map.put("Мордем", new Date("August 1 1980"));
        map.put("Юсбих", new Date("JUNE 1 1980"));
        map.put("Модем", new Date("July 1 1980"));
		return map;
    }

    @SuppressWarnings("deprecation")
	public static void removeAllSummerPeople(HashMap<String, Date> map)
    {
    	for (Entry<String, Date> entry : map.entrySet()) {
    		Integer month=entry.getValue().getMonth();
    		if(month==5 || month==6 || month==7) {
    			System.out.println(month); 
    			String key=entry.getKey();
//    			map.remove(key); 
    		}
    	}
    }
    
    public static void main(String[] args) {
    	HashMap<String, Date> map = createMap();
    	removeAllSummerPeople(map);
    	System.out.println(map);
	}
}
...
Рейтинг: 0 / 0
HashMap - как убрать не нужную запись?
    #38153902
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут правильнее использовать итератор, даже паттерн такой есть:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	public static void removeAllSummerPeople(Map<String, Date> map){
		Iterator<Map.Entry<String, Date>> iterator = map.entrySet().iterator();
		while (iterator.hasNext()) {
			Map.Entry<String, Date> entry = iterator.next();
			Integer month=entry.getValue().getMonth();
			if(month==5 || month==6 || month==7) {
				iterator.remove();
			}
		}
	}
...
Рейтинг: 0 / 0
HashMap - как убрать не нужную запись?
    #38153905
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra,

спасибо, то что нужно

у меня получалось гораздо больше строк
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
     	int countMonth = 0;
    	
    	for(Entry<String, Date> entry : map.entrySet()){
    		Integer month=entry.getValue().getMonth();
    		if(month==5 || month==6 || month==7) countMonth++;
    	}
    	
    	for(int i=0; i<countMonth; i++){
	    	for (Entry<String, Date> entry : map.entrySet()) {
	    		Integer month=entry.getValue().getMonth();
	    		
	    		if(month==5 || month==6 || month==7) {
	    			System.out.println(month);
	    			map.remove(entry.getKey());
	    			break;
	    		}
	    		
	    	}
    	}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap - как убрать не нужную запись?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]