728x90
반응형
Student
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package map; public class Student { private int stuNum; private String name; private int score; public Student(int stuNum, String name, int score) { this.stuNum = stuNum; this.name = name; this.score = score; } public int getStuNum() { return stuNum; } public void setStuNum(int stuNum) { this.stuNum = stuNum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return "Student{" + "stuNum=" + stuNum + ", name='" + name + '\'' + ", score=" + score + '}'; } } | cs |
변수 stuNum, name, score를 각각 지정하고, 매개변수를 받는 생성자를 만들어주었다.
이후 세터와 게터, toString( ) 메소드를 만들었다.
StuList2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | package map; import java.util.*; public class StuList2 { public static void main(String[] args) { //Map에 학생들의 정보를 저장. // key - 반이름, value = 해당 반에 소속된 학생들. Map<String , List<Student>> map = new HashMap<>(); // 1반에 소속된 학생 3명 생성 Student s1 = new Student(1,"김자바 ",80); Student s2 = new Student(2,"박자바 ",90); Student s3 = new Student(3,"이자바 ",100); List<Student> list1= new ArrayList<>(); list1.add(s1); list1.add(s2); list1.add(s3); map.put("자바반",list1); Student s4 = new Student(5,"김캐드", 85); Student s5 = new Student(6,"박캐드", 95); Student s6 = new Student(7,"이캐드", 25); List<Student> list2 = new ArrayList<>(); list2.add(s4); list2.add(s5); list2.add(s6); map.put("캐드반", list2); // 1 .모든 반의 반이름과 각 반에 소속된 학생 수 출력. Set<String> keySet = map.keySet(); // 자바반, 캐드반 두개나옴 for(String key : keySet ) // keySey - 반이름들, { System.out.println("반이름 : " + key + " / 학생 수 : " + map.get(key).size()); } // 2. 자바반에 소속된 학생들의 평균 점수 추렭 double avg = 0; int num = 0; for(int i=0; i<map.get("자바반").size(); i++) { num += map.get("자바반").get(i).getScore() ; } avg = (double)num / map.get("자바반").size(); System.out.println(avg); // 3. 캐드반 학생 중 점수가 80점 이상인 학생의 모든 정보 출력 for(int i=0; i<map.get("캐드반").size(); i++) { if(map.get("캐드반").get(i).getScore() >= 80) { System.out.print(list2.get(i) + " "); } } System.out.println(); // 4. 모든 학생 중 점수가 가장 높은 학생의 학번 출력. //map에 저장한 반 갯수만큼 반복 //classNames : 자바반, 캐드반 int maxScore = 0; // 최고점수 int maxStuNum = 0; // 최고점수를 지닌 학생의 학번. Set<String> classNames = map.keySet(); for(String className : classNames) // 반을 봄. { for( Student stu : map.get(className) ) // 그 반에있는 학생들의 수만큼 반복. { if(stu.getScore() > maxScore) { maxScore = stu.getScore(); maxStuNum = stu.getStuNum(); } } } System.out.println("최고점을 지닌 학번 : " + maxStuNum); } } | cs |
728x90
반응형
'✨ Java > 컬렉션 프레임워크(CollectionFramework)' 카테고리의 다른 글
[json] Map데이터 받아오는 8가지 방법 (0) | 2023.04.10 |
---|---|
자바(JAVA) - 컬렉션프레임워크 Map - 2 (0) | 2023.03.31 |
자바(JAVA) - 컬렉션프레임워크 Map (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 Set (0) | 2023.02.15 |
자바(JAVA) - ArrayList 이용해 회원 관리 시스템 만들기 (0) | 2023.02.15 |
댓글