•가장 큰 특징은 자료가 입력된 순서를 기억한다는 것입니다.
•LinkedHashMap은 HashMap을 확장합니다. HashMap의 모든 기능을 사용하되,
•Doubly-Linked List를 내부에 유지함으로써 입력된 자료의 순서를 보관한다.
•물론 자료의 크기가 커지면 메모리 사용량이 늘어나겠지만, 순서를 간편하게 유지하기 위해서 이만한게 없다.
Doubly-Linked List
•노드와 노드가 서로 연결되어 있다는 점입니다
•장점 : 양방향 탐색의 가장 큰 장점은 특정 인덱스 위치의 엘리먼트를 가져올 때와 반복자를 이용 해서 탐색할 때 드러납니다.
•단점 : 우선 이전 노드를 지정하기 위한 변수를 하나 더 사용해야 합니다. 메모리를 더 많이 사용한다는 의미입니다. 또 구현이 조금 더 복잡해진다는 단점도 있다.
로그
192.168.0.1 20210517000000 /main.do 200
192.168.0.1 20210517000000 /login.do 200
192.168.0.2 20210517000000 /main.do 200
192.168.0.2 20210517000000 /login.do 200
192.168.0.2 20210517000000 /login.do 200
192.168.0.3 20210517000000 /main.do 200
192.168.0.3 20210517000000 /main.do 200
192.168.0.3 20210517000000 /login.do 200
192.168.0.4 20210517000000 /main.do 500
192.168.0.4 20210517000000 /login.do 500
package HashMap_ex;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedList {
public static void main(String[] args) {
try {
Map<String, Integer> map = new LinkedHashMap<>();
String filePath = "C:\\Users\\최민준\\Desktop\\AccessLog_sample\\access.log";
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] outPutLine = line.split(" ");
String ip = outPutLine[0];
String status = outPutLine[3];
if (!map.containsKey(ip)) {
map.put(ip, 0);
}
map.put(ip, map.get(ip) + 1);
}
for (Map.Entry<String, Integer> key : map.entrySet()) {
System.out.println("key 값 : " + key.getKey() + " | " + "Value 값 : " + key.getValue());
}
} catch (FileNotFoundException e) {
System.out.println("파일을 찾을수 없다.");
} catch (IOException e) {
System.out.println(e);
}
}
}
참고 사이트 : https://coding-factory.tistory.com/557
https://opentutorials.org/module/1335/8940
'개발 > Java' 카테고리의 다른 글
[JAVA] length | length() | size의 이론 및 실사용 (0) | 2021.06.10 |
---|---|
[Map] TreeMap 이론 및 코드 정리 (0) | 2021.05.26 |
Hashtable 이론정리 (0) | 2021.05.26 |
[Map] HashMap 이론 및 코드 (0) | 2021.05.26 |
[Java] List 컬렉션 (0) | 2021.05.22 |