Задать вопрос
Ответы пользователя по тегу Java
  • Как каждому новому подключившемуся пользователю назначить отдельный поток?

    @cane
    Из контроллера можно выполнять асинхронные методы сервисов. В Spring такие методы помечаются аннотацией @Async. Реквест будет завершен, а выполнение задания продолжиться.
    Для изменения задания можно использовать какую-нибудь очередь или задействовать систему событий. см. ApplicationEvent.
    Ответ написан
    Комментировать
  • Не доходит до меня тема коллекций, что я не так решаю?

    @cane
    public class ReplaceFromMapTest {
    	public static void main(String[] args) {
    		if(deleteNamesake(getNames())) {
    			System.out.println("люди с одинаковыми именами были удалены из \"списка\".");
    		}
    	}
    	
    	public static Map<String, String> getNames() {
    		Map<String, String> names = new HashMap<String, String>();
    		names.put("Иванов", "Иван");
    		names.put("Пупкин", "Вася");
    		names.put("Коваленко", "Петя");
    		names.put("Лубнов", "Иван");
    		return names;
    	}
    	
    	public static boolean deleteNamesake(Map<String, String> names) {
    		boolean result = false;
    		Collection<String> allFirstNames = names.values();
    		Set<String> delNames = new HashSet<String>();
    		for(Map.Entry<String, String> p : names.entrySet()) {
    			if(Collections.frequency(allFirstNames, p.getValue()) > 1) {
    				delNames.add(p.getKey());
    			}
    		}
    		if(delNames.size() > 0) {
    			for(String n : delNames) {
    				names.remove(n);
    				result = true;
    			}
    		}
    		return result;
    	}
    }


    Только я бы не использовал в HashMap фамилии людей в качестве ключей, большая вероятность совпадений.
    Ответ написан
    Комментировать