1) Map의 특징
=> key 와 Value를 쌍으로 저장하는 자료구
=> 중복된 Key는 저장될 수 없어서 동일한 Key에 데이터를 삽입하면 수정이 발생합니다.
=> 메소드
=> Object 자료형은 형변환 해주어야한다.
=> Object get(key) : key에 해당하는 value리턴 없으면 null을 리턴
=> void put(key, value) : key에 Value 저장
=> set keyset : Map의 모든 key를 Set으로 리턴
package log;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class LoMain4 {
public static void main(String[] args) {
// log.txt file의 내용을 읽을 수 있는 객체를 생성
// log. txt 파일은 문자열로 구성된 파일이므로 읽기 위한 클래스는
// BufferedReader를 사용하는 것이 좋습니다.
try (BufferedReader br = new BufferedReader(new FileReader("log\\log.txt"))) {
// try()안에 객체를 생성하면 close()를 하지 않아도 됩니다.
// 텍스트 파일의 내용을 전부 읽어서 출력하기
// BufferedReader 객체에는 readLine()이라는 메소드가 있는데
// 줄 단위로 데이터를 읽고 읽은 내용을 String으로 리턴합니다.
// 마지막 줄에 가서 더이상 데이터를 읽지 못하면 null 을 리턴
// Ip별 트래픽 합계
Map<String, Object> map = new HashMap<String, Object>();
while (true) {
String b = br.readLine();
if (b == null) {
break;
}
// b중에 공백을 기준으로 맨 앞의 데이터만 출력
// 특정한 문자나 문자열을 기준으로 분할 해주는 메소드
// split(구분자) - String [] 로 리턴합니다.
String[] ar = b.split(" ");
// Ip를 가져와서 ip에 저장
Object temp = map.get(ar[0]);
// Ip의 key값이 있나 확인해보고
// 값은 key가없으면 ip와 traffice을 저장
if (temp == null) {
map.put(ar[0], Integer.parseInt(ar[9]));
}
// 이미 존재하는 IP라면 Traffice에 추가해서 저장
else {
// 중복되기 때문에 있는 값을 가져옴
// Object get(key) : key에 해당하는 value리턴 없으면 null을 리턴
int value = (Integer) map.get(ar[0]);
// 맵은 중복되면 값을 대체 합니다.
// 그렇기 때문에 이미 저장된 값을 value에 저장하고
// 트래픽이 있는 ar[9]번째를 정수로 바꾸어서 합해준다.
value = value + Integer.parseInt(ar[9]);
// 다시 입력.
map.put(ar[0], value);
}
}
//맵의 모든 데이터 출력
Set<String>keys = map.keySet();
for(String key: keys) {
System.out.println(key + ": "+ map.get(key));
}
System.out.println("=======================================");
} catch (Exception e) {
System.out.println("예외" + e.getMessage());
e.printStackTrace();
}
}
}
'Java > 자바 공부' 카테고리의 다른 글
log 파일 분석 > 중복된 ip를 제거하고 출력하는 방법 (0) | 2018.01.18 |
---|---|
자료구조 (0) | 2018.01.18 |
Awt를 이용한 로또번호 만들기 (0) | 2018.01.18 |
버퍼사용시 주의사항 && (0) | 2018.01.17 |
버퍼란 무엇인가? <출처 : 위키백과> (0) | 2018.01.17 |