Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //When I wrote this, only God and I understood what I was doing.
- //Now, God only knows.
- package dstg;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Scanner;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- @SuppressWarnings(value = "unchecked")
- public class DSTG
- {
- public static void main(final String[] args)
- {
- Scanner input = new Scanner(System.in);
- List<String> possibleFriends = new ArrayList<>();
- HashMap<String, List<String>> data = new HashMap<>();
- data.put("Filip", Arrays.asList("Ivan", "Marko", "Lucija", "Ana"));
- data.put("Mihovil", Arrays.asList("Marko", "Toni", "Karlo"));
- data.put("Iva", Arrays.asList("Marko", "Katarina"));
- data.put("Ivan", Arrays.asList("Filip", "Ana"));
- data.put("Marko", Arrays.asList("Filip", "Mihovil", "Iva", "Toni", "Katarina"));
- data.put("Toni", Arrays.asList("Mihovil", "Marko", "Lucija", "Katarina", "Karlo"));
- data.put("Lucija", Arrays.asList("Filip", "Toni", "Ana"));
- data.put("Katarina", Arrays.asList("Iva", "Marko", "Toni", "Karlo"));
- data.put("Karlo", Arrays.asList("Mihovil", "Toni", "Katarina"));
- data.put("Ana", Arrays.asList("Filip", "Ivan", "Lucija"));
- System.out.print("Ime osobe: ");
- String person = input.next();
- input.close();
- //trenutni prijatelji
- List<String> personFriends = data.get(person);
- for (String friend : personFriends)
- {
- //prolazi hashmapom
- Iterator it = data.entrySet().iterator();
- while (it.hasNext())
- {
- Map.Entry<String, List<String>> pair = (Entry<String, List<String>>) it.next();
- //postojeci prijatelj
- if (pair.getKey().toString().equals(friend))
- {
- List<String> tempFriends = pair.getValue();
- for (String tempFriend : tempFriends)
- {
- //provjerava je li tražena osoba ili je već među prijateljima
- if (!tempFriend.equals(person) && !personFriends.contains(tempFriend))
- {
- possibleFriends.add(tempFriend);
- }
- }
- }
- }
- }
- //racunanje prioriteta
- Map<String, Long> friendPriority = possibleFriends.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
- //sortiranje
- Map<String, Long> finalMap = new LinkedHashMap<>();
- friendPriority.entrySet().stream().sorted(Map.Entry.<String, Long> comparingByValue().reversed()).forEachOrdered(e -> finalMap.put(e.getKey(), e.getValue()));
- System.out.println(System.lineSeparator() + "Mogući novi prijatelji:");
- finalMap.forEach((name, count) ->
- {
- System.out.println(name + ": " + count);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement