package ch01_list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
* ArrayList
* → 객체를 index로 관리.
* → 저장용량이 초과되면 자동으로 늘어남.
*
* Iterator ( 반복자 )
* → collection 에 보관하고 있는 데이터에 순차적으로 접근할 때 사용.
* > hasNext() : 데이터 있는지 확인.
* next() : 데이터 가져오기
* remove() : 데이터 삭제
*/
public class ExArrayList {
public static void main(String[] args) {
ArrayList<String> exA = new ArrayList<>();
List<String> exB = new ArrayList<>();
// add() : 데이터 추가
exA.add("추신수");
exA.add("김연경");
exA.add("김하성");
System.out.println(exA);
// add(index, value) : index 위치에 추가
exA.add(1,"손흥민");
System.out.println(exA);
// size() : 요소의 수
System.out.println("데이터 수 : " + exA.size());
// contains( Object ) : 데이터 확인
System.out.println("손흥민 확인 : " + exA.contains("손흥민"));
System.out.println("박지성 확인 : " + exA.contains("박지성"));
// remove( Object or index ) : 데이터 제거
System.out.println("추신수 삭제 : " + exA.remove("추신수"));
System.out.println(exA);
System.out.println("1번 데이터 삭제 : " + exA.remove(1));
System.out.println(exA);
// set( index, value ) : 데이터 수정
System.out.println("0번 index 수정 : " + exA.set(0, "이강인"));
System.out.println(exA);
// get( index ) : 데이터 확인
System.out.println("1번 데이터 : " + exA.get(1));
System.out.println();
// 각 객체 확인
for(int i=0; i<exA.size(); i++) {
System.out.println(i + "번 : " + exA.get(i));
}
// foreach - for( 변수명 : collection )
for( String data : exA) {
System.out.println(data);
}
System.out.println();
System.out.println('1');
// Iterator
Iterator<String> it = exA.iterator();
while(it.hasNext()) { // 데이터가 있는지 확인.
System.out.println(it.next());
}
}
}
// Member
package ch01_list;
public class Member {
private String name;
private int age;
public Member(String name, int age ) { this.name = name; this.age = age;}
public String getName() { return name; }
public void setName(String name) { this.name =name;}
public int getAge() {return age;}
public void setAge(int age) {this.age=age;}
public String toString() {
return name + " - " + age;
}
}
--------------------------------------------------------------------------------
// MemberManager
package ch01_list;
import java.util.ArrayList;
import java.util.Scanner;
public class MemberManager {
private Scanner sc = new Scanner(System.in);
private ArrayList<Member> list;
public MemberManager() {list = new ArrayList<>();}
public int inputInteger(String message) {
System.out.println(message);
return sc.nextInt();
}
// 회원 관리 메뉴
public void menu() {
while(true) {
int select = inputInteger("1.추가 2.삭제 3.목록 4.수정 5.확인");
switch(select) {
case 1: // 추가
insert(); break;
case 2: // 삭제
delete(); break;
case 3: // 목록
view(); break;
case 4: // 수정
modify(); break;
case 5: // 확인
config(); break;
case 0:
end();
default:
System.out.println("선택 오류...");
}
System.out.println();
}
} // menu
// 회원 추가
public void insert() {
System.out.println("--- 회 원 추 가 ---");
System.out.print("이름 입력 > ");
String name = sc.next();
System.out.print("나이 입력 > ");
int age = sc.nextInt();
list.add(new Member(name,age));
}// insert
// 회원 조회
public void view() {
System.out.println("--- 회 원 목 록 ---");
for(Member mem : list) {
System.out.print(mem + " ");
}
System.out.println("회원 수 : " + list.size());
} // view
public void delete() {
System.out.println("--- 회 원 삭 제 ---");
System.out.print("삭제 이름 입력 > ");
String del_name = sc.next();
Member man = findName(del_name);
if(man == null) {
System.out.println("없는 회원입니다..");
return;
}
list.remove(man);
System.out.println(man + " 삭제");
} // delete
public Member findName(String search) {
for(Member man : list) {
if(man.getName().equals(search))
return man;
}
return null;
}
// 회원 정보 수정
public void modify() {
System.out.println("--- 회 원 수 정 ---");
System.out.print("수정할 회원 입력 > ");
String find_name = sc.next();
Member man = findName(find_name);
if(man == null) {
System.out.println("없는 회원입니다..");
return;
} else {
System.out.print("수정할 이름 입력 > ");
String modi_name = sc.next();
System.out.print("수정할 나이 입력 > ");
int modi_age = sc.nextInt();
Member man2 = new Member(modi_name,modi_age);
list.set(list.indexOf(man), man2);
}
}// modify
public void config() {
System.out.println("--- 회 원 확 인 ---");
System.out.print("검색 이름 입력 > ");
String name = sc.next();
Member man = findName(name);
if(man!=null) {
System.out.println(man);
}
else
System.out.println("없는 회원입니다..");
}
// 프로그램 종료
public void end() {
System.out.println(" - Program end - ");
System.exit(0); // 현 위치에서 프로그램 강제 종료.
}
}
--------------------------------------------------------------------------------
// MemberMain
package ch01_list;
public class MemberMain {
public static void main(String[] args) {
MemberManager manager = new MemberManager();
manager.menu();
}
}