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

Код: 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
16.02.2013, 13:11:25
    #38153902
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HashMap - как убрать не нужную запись?
Тут правильнее использовать итератор, даже паттерн такой есть:
Код: 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
16.02.2013, 13:21:51
    #38153905
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HashMap - как убрать не нужную запись?
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
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap - как убрать не нужную запись? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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