α׷
ù ȸ α
մ 2017-07-24 17:40:52
ϱ - ¶ڵ׽Ʈ 07.24

dkũ ̶ īīO ȸ翡
Ϸ ! Խϴ.
ȭִ... ̾ҳ?

6 ڸ û ̱淡 Ʈ 鿣 ̽ iosȰ ־µ
÷̶׿...javaΰ ...;;;
ڵ׽Ʈ Ϸ pdf input log ΰ ְ Ǯ Ǿֳ׿

ڸ...
logϿ ° url Ʈ © output log  °ų׿
1. apikey
2. 񽺾̵ top3
3.

Ǯ̴...α Ŭ  系ְ
α Ŭ Ʈ Ƽ...׷̶° ִ󱸿~ sql ׷Լ 񽺹
Map<String, Long> = Ʈͱٰ.stream()
        .collect(Collectors.groupingBy(Log::getApiKey, Collectors.counting()));
װɷ θŰ ٽ ͷذ Ʈ 

ϸ Ǵµ....ϴٰ...ħ

....java 8 Ǯ ٰؼ lamda ӽñ map.stream().foreach
ų system.out.println() foreachȿٰ ߵdz!
Ʈ ־?!ϴµ...ȵ ФФФФФФФ

.foreach µ....ٱ Ф finalȵ ;;;
ƿ...ִ°ž ̰... final Ǹ Ⱦ Ӹ Ф
ᱹ ͷ...

ƾ java map sortϳ Ҷ...
map->set->linked list -> sort -> iterator ...

ؼ ?Ф
Ǯ鼭......̷ key value ־ߵǴµ...ʹۿ ? ...sort
ư Ǯ ϰ?

ȸ ÷ֿ ϱ ...kcc̴...
Կ ȸ ׿~

| 1220 о. 3.139.83.7

0
1 մ 2017-07-24 18:15:07
key, value ϴ° ʻε ϱ ?
TreeMap ȵdz?
2 մ 2017-07-24 18:29:51
1// Ф ᱹ ٽ ҵ
3 մ 2017-07-24 18:43:13
ᱹ ӵ 𸣰;;;
Ʒó ϸ ڵ ü ٽἭ ϰ մϴ

Map<Integer, String> data = new HashMap<>();
data.put(3, "a");
data.put(2, "a");
data.put(6, "a");

TreeMap<Integer, String> sorted = new TreeMap<Integer, String>((o1, o2) -> o1.compareTo(o2));
sorted.putAll(data);
TreeMap<Integer, String> reverseSorted = new TreeMap<Integer, String>((o1, o2) -> -o1.compareTo(o2));
reverseSorted.putAll(sorted);
4 մ 2017-07-24 18:58:36
ƴ Ű ƴ϶ ؾּ;; â
5 մ 2017-07-24 19:00:48
TreeMap<Integer, String> sorted = new TreeMap<Integer, String>((o1, o2) -> data.get(o1).compareTo(data.get(o2)));
sorted.putAll(data);
TreeMap<Integer, String> reverseSorted = new TreeMap<Integer, String>((o1, o2) -> -data.get(o1).compareTo(data.get(o2)));
reverseSorted.putAll(sorted);

䷱ɷδٰ...
6 մ 2017-07-24 19:07:53
5 // ȣ ź ξ ϳ׿
Ե Ǵ±...
7 մ 2017-07-24 19:51:52
collect()
8 մ 2017-07-25 10:45:11
class instance ѱ ȿ ϸ ۿ ִµ ()

3, 5/
Ҷ ܼ - ̸ -2^32 - ÷α o2.compareTo(o1) ϴ ϴ.
9 մ 2017-07-25 11:07:14
8// մϴ~
10 մ 2017-07-25 12:24:00
//7,8 ȣ ѵ ڶ 𸣰 Ф
̷ ̻ ڵ !

//200 ֵ鸸 List
List<Log> okRequestList = listLog.stream()
.filter(log -> 200 == log.getHttpRequest()) // 200 üũ
.collect(Collectors.toList()); //stream to list


// ׷ؼ
Map<String, Long> apiKeyCountMap = okRequestList.stream()
.collect(Collectors.groupingBy(Log::getApiKey, Collectors.counting()));

̷ؼ apiKey ͼ {"apiKey" = , "apiKey2" = 2} ȣ ̰Ը³? ư ̷ ִµ ⼭ sort Ϸ ߰ŵ

̹ ؼ Ұ ƴ ִ ñմϴ :)

sort ҷ Լ ϳ  Ʒó ߰ŵ Ф
(۸ 깰 ̷ ڵ Ҹ )
// 3° break Ʈ
private static <K, V> String makeTop3Text(Map<K, V> map) {
List<Entry<K, V>> list = new LinkedList<>(map.entrySet());
Collections.sort(list, new Comparator<Object>() {
@SuppressWarnings("unchecked")
public int compare(Object o1, Object o2) {
return ((Comparable<V>) ((Map.Entry<K, V>) (o2)).getValue())
.compareTo(((Map.Entry<K, V>) (o1)).getValue());
}
});

String resultString = "";
int i = 1;
for (Iterator<Entry<K, V>> it = list.iterator(); it.hasNext();) {
if (i > 3) {
break;
}
i++;
Map.Entry<K, V> entry = (Map.Entry<K, V>) it.next();
resultString += entry.getKey() + " : " + entry.getValue() + "\n";
}

return resultString;
}
ۼϽ ϴ.
( ȸ)
̿ | / | ޹ħ | | TE31 | : 14%
ǽð Issue Ŀ´Ƽ TE31 [] 2002-2024
TOP arrow_upward