package kr.or.ddit.homework;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class HomeWork18 {
public static void main(String[] args) {
HomeWork18 hw = new HomeWork18();
hw.process();
}
public void process() {
List<Map> list = dataInput();
print(list);
int max = maxSalary(list);
System.out.println();
System.out.println("최대 월급 : " + max);
System.out.println();
System.out.println("각 부서별 월급 총합");
sum(list);
System.out.println();
System.out.println("emp_no가 101인 사람 정보");
search(list);
}
// 1. 최대 월급 구하기
public int maxSalary(List<Map> list) {
int max = 0;
for (Map map : list) {
// 급여키워드 값이 max보다 큰 값 저장 (비교를 위해 int로 타입변경할것)
if ((int) map.get("salary") > max) {
max = (int) map.get("salary");
}
}
return max;
}
// 2. 각 부서별 월급 총합
public Map<String,Integer> sum(List<Map> list) {
// 부서별 월급을 저장해주기 위해 map 생성
// sum 이름을 가진 map변수에 key = 부서이름 , value = 급여 저장
Map<String,Integer> sum = new HashMap();
for (Map map : list) {
// 부서 이름이 맵에 포함되어있을 때
if(sum.containsKey(map.get("dept"))) {
// 기존에 있던 맵을 삭제한 후에 급여값을 sum의 remove값에 저장 (sum의 dept 키워드의 value 값은 급여합계)
int remove = sum.remove(map.get("dept"));
// 다시 dept 키워드와 value값인 급여+합계를 저장
sum.put((String) map.get("dept"),(int) (map.get("salary"))+remove);
} else {
// 포함이 되지 않았을 때 dept 키워드와 value값인 급여를 저장
sum.put((String) map.get("dept"),(int) (map.get("salary")));
}
}
// map 출력 EntrySet 사용 (배운거 아님)
// for(Entry<String, Integer> entrySet : sum.entrySet()) {
// System.out.println(entrySet.getKey()+ "\t"+entrySet.getValue());
// }
System.out.println(sum);
return sum;
}
// 3. emp_no 101인 사람의 정보 출력하기
public void search(List<Map> list) {
for (Map map : list) {
// emp_no키워드를 가지고 있는 map 찾기
if ((int) map.get("emp_no") == 101) {
System.out.println(map.get("emp_no") + "\t" + map.get("emp_name") + "\t" + map.get("dept") + "\t"
+ map.get("salary"));
}
}
}
public void print(List<Map> list) {
for (Map map : list) {
System.out.println(
map.get("emp_no") + "\t" + map.get("emp_name") + "\t" + map.get("dept") + "\t" + map.get("salary"));
}
}
// 정보입력
public List<Map> dataInput() {
// emp_no emp_name dept salary
// 100 김기훈 영업부 300
// 101 홍성범 기획부 350
// 102 이만수 기획부 500
// 103 강나미 영업부 350
// 109 민병철 총무부 250
Map p1 = new HashMap();
p1.put("emp_no", 100);
p1.put("emp_name", "김기훈");
p1.put("dept", "영업부");
p1.put("salary", 300);
Map p2 = new HashMap();
p2.put("emp_no", 101);
p2.put("emp_name", "홍성범");
p2.put("dept", "기획부");
p2.put("salary", 350);
Map p3 = new HashMap();
p3.put("emp_no", 102);
p3.put("emp_name", "이만수");
p3.put("dept", "기획부");
p3.put("salary", 500);
Map p4 = new HashMap();
p4.put("emp_no", 103);
p4.put("emp_name", "강나미");
p4.put("dept", "영업부");
p4.put("salary", 350);
Map p5 = new HashMap();
p5.put("emp_no", 109);
p5.put("emp_name", "민병철");
p5.put("dept", "총무부");
p5.put("salary", 250);
List list = new ArrayList();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
return list;
}
}
'JAVA > JAVA BASIC' 카테고리의 다른 글
3/29 Homework (0) | 2024.03.29 |
---|---|
[JAVA] 컬렉션 연습 (0) | 2024.03.29 |
[JAVA] Collection Framework (1) | 2024.03.28 |
3/27 Homework 달력만들기 (0) | 2024.03.27 |
[JAVA] 중첩 클래스, Unit 클래스 (0) | 2024.03.27 |