ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA for , enhance for, Stream
    Java&Spring/Java 2022. 11. 1. 12:36

    for 문 부터 보자.

     

    1. 기존 방식이다.

    for(int i =0;i<friends.size();i++){
        if(friends_score.containsKey(friends.get(i).get(0))) {
            friends_score.put( friends.get(i).get(0),friends_score.get(friends.get(i).get(0)) + 10);
        }
        else if(friends_score.containsKey(friends.get(i).get(1))) {
            friends_score.put( friends.get(i).get(1),friends_score.get(friends.get(i).get(1)) + 10);
        }
    }

    2. enhanced for 문 으로 변경하면 다음과 같다 , python 과 유사하다.

    for (List<String> friend : friends) {
        if (friends_score.containsKey(friend.get(0))) {
            friends_score.put(friend.get(0), friends_score.get(friend.get(0)) + 10);
        } else if (friends_score.containsKey(friend.get(1))) {
            friends_score.put(friend.get(1), friends_score.get(friend.get(1)) + 10);
        }
    }

     

     

     

     

    1. enhanced for 문이다

    for (List<String> friend : friends)
        {
        if(friend.get(0).equals(user)) {
            friends_list.add(friend.get(1)); 
            friends.remove(friend);
        }
        if(friend.get(1).equals(user)){
            friends_list.add(friend.get(0));
            friends.remove(friend);
        };
    }
    friends_list.remove(user);

    2.

    for (int i =  0 ; i<friends.size();i++)
    {
        if(friends.get(i).get(0).equals(user)) {
            friends_list.add(friends.get(i).get(1)); // freinds inside there is
            // 이름들 목록에서 user 포함 리스트 제거
            friends.remove(friends.get(i));
        }
        if(friends.get(i).get(1).equals(user)){
            friends_list.add(friends.get(i).get(0));
            friends.remove(friends.get(i));
        };
    }
    friends_list.remove(user);

     

     

    3 .Stream 을 이용하는 방식이다.

     

    다음과 같이 value 는 내림, key는 올림 하고싶다.

    A 25
    C 17
    B 15
    E 15
    D 10
    Map<String, Integer> map = Map.of("A", 25, "D", 10, "B", 15, "E", 15, "C", 17);
    Map<String, Integer> result = map.entrySet().stream()
        .sorted(Comparator.<Map.Entry<String, Integer>>comparingInt(Map.Entry::getValue)
           .reversed().thenComparing(Map.Entry::getKey))
        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, 
             (a,b)->b, LinkedHashMap::new));
    System.out.println(result);
Designed by Tistory.