Java&Spring/Java
JAVA for , enhance for, Stream
sung.hyun.1204
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);