A c = new B()
A 를 쓰되 B 메서드 주소를 쓴다.
ArrayList
1.
import java.util.*;
public class M {
public static void main(String[] args) {
// 제네릭X
// 이름만 다르고 기능 같음 -> ArrayList, Vector, LinkedList
ArrayList list = new ArrayList();
// Vector list = new Vector();
// LinkedList list = new LinkedList();
// 추가
list.add("김가가");
list.add("김나나");
list.add("김다다");
list.add("김라라");
list.add("김마마");
// 전체 출력
for(Object obj:list)
{
String name = (String)obj;
System.out.println(name);
// System.out.println(obj); // String이 아니라 제어 어렵다
}
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
// 전체 출력2
for(int i=0; i<list.size(); i++)
{
String name = (String)list.get(i);
System.out.println(name);
}
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
// 전체 출력3 -> 람다
list.forEach(name -> System.out.println(name));
// 데이터 추가
list.add("김바바");
list.add(2, "김사사"); // 순서 2번째 인덱스로
list.add(3, "김아아");
// 데이터 수정
list.set(0, "김각각");
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
// 데이터 삭제
list.remove(2);
// 확인
for(int i=0; i<list.size(); i++)
{
String name = (String)list.get(i);
System.out.println(name + " : " + i);
}
// 전체 삭제
list.clear();
// 저장된 개수
System.out.println("총 인원: " + list.size());
// 데이터 존재 여부
if(list.isEmpty())
System.out.println("저장공간 비워짐");
else
System.out.println("데이터 있다.");
}
}
2.
import java.util.*;
class Sawon
{
private int sabun;
private String name;
private String dept;
private String job;
private int pay;
public int getSabun() {
return sabun;
}
public void setSabun(int sabun) {
this.sabun = sabun;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getPay() {
return pay;
}
public void setPay(int pay) {
this.pay = pay;
}
// 매개변수 있는 생성자
public Sawon(int sabun, String name, String dept, String job, int pay) {
this.sabun = sabun;
this.name = name;
this.dept = dept;
this.job = job;
this.pay = pay;
}
}
public class M2 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new Sawon(1, "김가가", "개발부", "사원", 3200));
list.add(new Sawon(2, "김나나", "총무부", "대리", 4200));
list.add(new Sawon(3, "김다다", "기획부", "과장", 5200));
list.add(new Sawon(4, "김라라", "자재부", "차장", 6200));
list.add(new Sawon(5, "김마마", "영업부", "팀장", 7200));
System.out.println("ㅡㅡㅡㅡ 사원 출력 ㅡㅡㅡㅡ");
System.out.println("사원 총 인원: " + list.size() + "명");
// Object(상위 클래스) -> Sawon(하위 클래스) 메서드에 접근 못함
for(Object obj:list)
{
Sawon sa = (Sawon)obj; // 그래서 형변환 필요
System.out.println("사번: " + sa.getSabun());
System.out.println("이름: " + sa.getName());
System.out.println("부서: " + sa.getDept());
System.out.println("직위: " + sa.getJob());
System.out.println("연봉: " + sa.getPay());
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
}
System.out.println("ㅡㅡㅡㅡ 사원 추가 ㅡㅡㅡㅡ");
list.add(new Sawon(6, "김바바", "개발부", "사장", 8200));
System.out.println("ㅡㅡㅡㅡ 사원 수정 ㅡㅡㅡㅡ");
list.set(0, new Sawon(1, "김가가", "개발부", "과장", 3600)); // 0: 인덱스 번호, 1: 실제 번호
System.out.println("ㅡㅡㅡㅡ 사원 퇴사 ㅡㅡㅡㅡ");
list.remove(1); // 인덱스 번호 -> "김나나" 삭제
System.out.println("ㅡㅡㅡㅡ 회사 폐업 ㅡㅡㅡㅡ");
list.clear();
}
}
실전같은 예제
1. 사원 데이터 <추가, 수정, 상세보기, 삭제>
// Sawon.java
// 사원 정보 데이터형 -> SawonVO, SawonDTO
public class Sawon {
private int sabun;
private String name;
private String dept;
private String job;
private int pay;
public int getSabun() {
return sabun;
}
public void setSabun(int sabun) {
this.sabun = sabun;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getPay() {
return pay;
}
public void setPay(int pay) {
this.pay = pay;
}
// 매개변수 있는 생성자
public Sawon(int sabun, String name, String dept, String job, int pay) {
this.sabun = sabun;
this.name = name;
this.dept = dept;
this.job = job;
this.pay = pay;
}
}
// SawonManager
import java.util.*;
public class SawonManager {
// 하나의 데이터를 공유
private static ArrayList list = new ArrayList();
// 초기화
static
{
list.add(new Sawon(1, "김가가", "개발부", "사원", 3200));
list.add(new Sawon(2, "김나나", "총무부", "대리", 4200));
list.add(new Sawon(3, "김다다", "기획부", "과장", 5200));
list.add(new Sawon(4, "김라라", "자재부", "차장", 6200));
list.add(new Sawon(5, "김마마", "영업부", "팀장", 7200));
}
// 1. 목록 출력
public void sawonList()
{
System.out.println("ㅡㅡㅡ 사원 목록 ㅡㅡㅡ");
for(Object obj:list)
{
Sawon sa = (Sawon)obj;
System.out.println(sa.getSabun() + " "
+ sa.getName() + " "
+ sa.getDept() + " "
+ sa.getJob()+ " "
+ sa.getPay());
}
}
// 2. 수정
public void sawonUpdate()
{
Scanner sc = new Scanner(System.in);
System.out.println("사번 입력: ");
int sabun = sc.nextInt();
System.out.println("이름 입력: ");
String name = sc.next();
System.out.println("부서 입력: ");
String dept = sc.next();
System.out.println("직위 입력: ");
String job = sc.next();
System.out.println("연봉 입력: ");
int pay = sc.nextInt();
Sawon sa = new Sawon(sabun, name, dept, job, pay);
int k=0;
for(Object obj:list)
{
Sawon s = (Sawon)obj;
if(s.getSabun()==sabun)
{
break; // 인덱스 번호 구하기
}
k++;
}
list.set(k, sa); // 해당 값 인덱스 번호를 sa로 변경
sawonList();
}
// 3. 추가
public void sawonInsert()
{
Scanner sc = new Scanner(System.in);
System.out.println("이름 입력: ");
String name = sc.next();
System.out.println("부서 입력: ");
String dept = sc.next();
System.out.println("직위 입력: ");
String job = sc.next();
System.out.println("연봉 입력: ");
int pay = sc.nextInt();
int sabun=0;
for(Object obj:list)
{
Sawon sa = (Sawon)obj;
if(sa.getSabun() > sabun)
sabun = sa.getSabun();
}
// 시퀀스 -> Max+1 -> 게시판 번호 매길 때 사용
Sawon sa = new Sawon(sabun+1, name, dept, job, pay);
list.add(sa);
sawonList();
}
// 4. 상세 보기
public void sawonDetail()
{
Scanner sc = new Scanner(System.in);
System.out.println("이름 입력: ");
String name = sc.next();
for(Object obj:list)
{
Sawon sa = (Sawon)obj;
if(sa.getName().equals(name))
{
System.out.println("ㅡㅡㅡ 사원 정보 ㅡㅡㅡ");
System.out.println("사번: " + sa.getSabun());
System.out.println("이름: " + sa.getName());
System.out.println("부서: " + sa.getDept());
System.out.println("직위: " + sa.getJob());
System.out.println("연봉: " + sa.getPay());
}
}
}
// 5. 삭제
public void sawonDelete()
{
Scanner sc = new Scanner(System.in);
System.out.println("이름 입력: ");
String name = sc.next();
int k=0;
for(Object obj:list)
{
Sawon sa = (Sawon)obj;
if(sa.getName().equals(name))
{
list.remove(k);
break; // 끝나면 break
}
k++; // remove 후 나머지 출력
}
sawonList();
}
}
// UserMain.java
public class UserMain {
public static void main(String[] args) {
SawonManager sm = new SawonManager();
sm.sawonList();
// sm.sawonDetail();
// sm.sawonDelete();
// sm.sawonUpdate();
sm.sawonInsert();
}
}
'수업' 카테고리의 다른 글
+29 라이브러리(IO) : 스트림, 직렬화(ObjectInputStream, ObjectOutputStream) (0) | 2022.06.14 |
---|---|
+28 라이브러리(ArrayList), Stack, Queue, HashSet, TreeSet, HashMap, Collections, 어노테이션 (0) | 2022.06.13 |
+26 형식화 클래스: Decimal Format, SimpleDateFormat, ChoiceFormat (0) | 2022.06.09 |
+26 라이브러리 : java.util, java.util.regex, java.util.StringTokenizer (0) | 2022.06.09 |
+25 라이브러리 (0) | 2022.06.08 |