반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- KNeighborsClassifier
- tensorflow
- 머신러닝
- CES 2O21 참가
- 자료구조
- web 용어
- CES 2O21 참여
- cudnn
- 재귀함수
- inorder
- vscode
- web 사진
- broscoding
- 웹 용어
- postorder
- Keras
- C언어
- 결합전문기관
- web
- java역사
- 데이터전문기관
- html
- discrete_scatter
- web 개발
- classification
- 대이터
- pycharm
- mglearn
- paragraph
- bccard
Archives
- Today
- Total
bro's coding
java.map 본문
반응형
Map
key와 value 쌍으로 저장
주로 key로 검색, 삭제
참고) set: 중복 인정X / List : index로 관리
import java.util.LinkedHashMap;
package step2;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;
public class TestMap1 {
public static void main(String[] args) {
// HashMap map = new HashMap();
// Generic > 데이터의 종류, Generic을 적용하면 Casting 절차 감소, 데이터의 안정성
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();// 순서 보장
// Map은 key와 value 쌍으로 저장
map.put("a", "족발");
map.put("b", "소주");
System.out.println(map);
// {a=족발, b=소주}
// key로 검색해서 value 반환
System.out.println(map.get("a"));
// 족발
// key에 해당하는 value가 없을 때는 null을 반환
System.out.println(map.get("k"));
// null
// key의 존재 유무를 확인/ 있다:true/없다:false
System.out.println(map.containsKey("e"));
// false
// key는 유일해야 함 > 기존 키를 사용하면 업데이트
map.put("b", "맥주");
System.out.println(map.get("b"));
// 맥주
// remove
System.out.println(map);
System.out.println("remove" + map.remove("a"));
System.out.println(map);
/*
* {a=족발, b=맥주} remove족발 {b=맥주}
*/
map.put("d", "콜라");
map.put("e", "와인");
System.out.println(map);
// {b=맥주, d=콜라, e=와인}
// key의 집합을 반환
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();// Iterator(반복자) : Collection 계열의 모든 자료구조체의 요소를 열거할 수 있는 표준화된 방법
// hasNext():boolean, next:String을 이용해서 while문으로 열거
while(it.hasNext()) {
System.out.println(it.next());
}
/*
b
d
e
*/
// value의 집합을 반환
Collection<String> col = map.values();
Iterator<String> it2=col.iterator();
while(it2.hasNext()) {
System.out.println(it2.next());
}
/*
맥주
콜라
와인
*/
System.out.println(map);
// {b=맥주, d=콜라, e=와인}
map.clear();
System.out.println(map);
// {}
}
}
package test.step1;
import model.Employee;
import model.SchoolService;
import model.Student;
import model.Teacher;
public class TestCaseAdd {
public static void main(String[] args) {
SchoolService service = new SchoolService();
service.addPerson(new Student("0101231234", "이희은", "용인", "17"));
service.addPerson(new Teacher("0101231235", "신정희", "수지", "국어"));
service.addPerson(new Student("0101231236", "고보승", "수원", "16"));
service.addPerson(new Employee("0101231237", "이재훈", "화성", "재무부"));
service.addPerson(new Student("0101231238", "최인재", "용인", "18"));
service.addPerson(new Teacher("0101231239", "유예주", "용인", "수학"));
service.printAll();
//0101231234 tel 이 중복되어 추가될 수 없습니다
service.addPerson(new Student("0101231234", "아이유", "잠실", "18"));
System.out.println("***학교 구성원 등록 완료***");
service.printAll();// 6명 출력
}
}
package test.step2;
import model.Employee;
import model.Person;
import model.SchoolService;
import model.Student;
import model.Teacher;
public class TestCaseFind {
public static void main(String[] args) {
SchoolService service = new SchoolService();
service.addPerson(new Student("0101231234", "이희은", "용인", "17"));
service.addPerson(new Teacher("0101231235", "신정희", "수지", "국어"));
service.addPerson(new Student("0101231236", "고보승", "수원", "16"));
service.addPerson(new Employee("0101231237", "이재훈", "화성", "재무부"));
service.addPerson(new Student("0101231238", "최인재", "용인", "18"));
service.addPerson(new Teacher("0101231239", "유예주", "용인", "수학"));
service.printAll();
System.out.println("***학교 구성원 등록 완료***");
String tel = "0101231235";
tel = "0101231230";//존재하지 않는 번호로도 테스트
Person p = service.findPersonByTel(tel);
System.out.println("검색결과:" + p); // tel에 해당하는 구성원이 있으면 출력하고 없으면 null이 출력됨
System.out.println("***검색완료***");
}
}
package test.step3;
import model.Employee;
import model.SchoolService;
import model.Student;
import model.Teacher;
public class TestCaseDelete {
public static void main(String[] args) {
SchoolService service = new SchoolService();
service.addPerson(new Student("0101231234", "이희은", "용인", "17"));
service.addPerson(new Teacher("0101231235", "신정희", "수지", "국어"));
service.addPerson(new Student("0101231236", "고보승", "수원", "16"));
service.addPerson(new Employee("0101231237", "이재훈", "화성", "재무부"));
service.addPerson(new Student("0101231238", "최인재", "용인", "18"));
service.addPerson(new Teacher("0101231239", "유예주", "용인", "수학"));
service.printAll();
System.out.println("***학교 구성원 등록 완료***");
service.deletePersonByTel("0101231239");
System.out.println("**삭제 후 명단**");
service.printAll();// 5명 출력
}
}
package test.step4;
import model.Employee;
import model.SchoolService;
import model.Student;
import model.Teacher;
public class TestCaseUpdate {
public static void main(String[] args) {
SchoolService service = new SchoolService();
service.addPerson(new Student("0101231234", "이희은", "용인", "17"));
service.addPerson(new Teacher("0101231235", "신정희", "수지", "국어"));
service.addPerson(new Student("0101231236", "고보승", "수원", "16"));
service.addPerson(new Employee("0101231237", "이재훈", "화성", "재무부"));
service.addPerson(new Student("0101231238", "최인재", "용인", "18"));
service.addPerson(new Teacher("0101231239", "유예주", "용인", "수학"));
service.printAll();
System.out.println("***학교 구성원 등록 완료***");
//구성원 정보 수정
service.updatePerson(new Teacher("0101231234","박보검","분당","자바"));
//존재하지 않는 구성원 tel이 있으면 tel에 해당하는 구성원 정보가 없어서 수정 불가
service.updatePerson(new Teacher("0101231230","박보검","분당","자바"));
System.out.println("***수정완료***");
service.printAll();// 5명 출력
}
}
package model;
public class Employee extends Person {
private String department;
public Employee(String tel, String name, String address, String department) {
super(tel, name, address);
this.department = department;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return super.toString()+" department=" + department ;
}
}
package model;
public class Student extends Person{
private String stuId;
public Student(String tel, String name, String address, String stuId) {
super(tel, name, address);
this.stuId = stuId;
}
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}
@Override
public String toString() {
return super.toString()+" stuId=" + stuId;
}
}
package model;
public class Teacher extends Person{
private String subject;
public Teacher(String tel, String name, String address, String subject) {
super(tel, name, address);
this.subject = subject;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
@Override
public String toString() {
return super.toString()+" subject=" + subject;
}
}
package model;
/**
* 학교 구성원(학생,교사,직원)의 공통점을 모아 일반화한 클래스
* 구성원 정보의 공통된 멤버(속성과 기능)을 정의한다
* 해당 클래스는 자신의 객체가 별도로 생성될 필요가 없으므로
* abstract로 처리한다
* @author 잠자리
*
*/
public abstract class Person {
private String tel;
private String name;
private String address;
public Person(String tel, String name, String address) {
super();
this.tel = tel;
this.name = name;
this.address = address;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "tel=" + tel + ", name=" + name + ", address=" + address;
}
}
package model;
import java.util.Iterator;
import java.util.LinkedHashMap;
public class SchoolService {
// key : tel value : Person 자식 객체 ( Student, Teacher , Employee )
private LinkedHashMap<String, Person> map = new LinkedHashMap<String, Person>();
public void addPerson(Person person) {
// TODO Auto-generated method stub
if (findTel(person.getTel())) {
System.out.println("중복중복");
} else {
map.put(person.getTel(), person);
}
}
public boolean findTel(String tel) {
if (map.containsKey(tel)) {
return true;
} else {
return false;
}
}
public void printAll() {
// TODO Auto-generated method stub
Iterator<Person> it = map.values().iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
public Person findPersonByTel(String tel) {
// TODO Auto-generated method stub
if(map.containsKey(tel)) {
return map.get(tel);
}
return null;
}
public void deletePersonByTel(String tel) {
// TODO Auto-generated method stub
map.remove(tel);
}
public void updatePerson(Person person) {
// TODO Auto-generated method stub
map.put(person.getTel(), person);
}
}
반응형
'[IT] > java' 카테고리의 다른 글
java.Exception Handling(예외 처리).throws (0) | 2021.03.10 |
---|---|
java.Exception Handling(예외 처리).try/catch (0) | 2021.03.09 |
java.Exception Handling(예외 처리).finally (0) | 2021.03.09 |
java.Exception Handling(예외 처리) (0) | 2021.03.09 |
java.stack/queue (0) | 2021.03.09 |
java.ArrayList/LinkedList (0) | 2021.03.09 |
java.SemiProject.SchoolService (0) | 2021.03.08 |
java.iterator(열거형) (0) | 2021.03.05 |
Comments