12 2 Array List Linked List Linked List

  • Slides: 29
Download presentation

12. 2 자료구조 클래스들 자료구조 클래스 이름 리스트 Array. List Linked. List 스택 Linked.

12. 2 자료구조 클래스들 자료구조 클래스 이름 리스트 Array. List Linked. List 스택 Linked. List 큐 Linked. List 해쉬 테이블 Hash. Map 집합 Hash. Set

12. 3 Collection과 Map

12. 3 Collection과 Map

12. 5 Collection 계열 클래스 구현

12. 5 Collection 계열 클래스 구현

12. 5. 1 Stack import java. util. *; public class Stack. Main{ Collection public

12. 5. 1 Stack import java. util. *; public class Stack. Main{ Collection public static void main(String[] args) { List Linked. List Stack<String> stack = new Stack<String>(); System. out. println(stack. empty()); Stack stack. push(new String(“홍길동")); Vector stack. push(new String(“성춘향")); Array. List stack. push(new String(“이몽룡")); System. out. println(stack. empty()); System. out. println(stack. peek()); System. out. println(stack. pop()); System. out. println(stack. peek()); System. out. println(stack. search(“이산")); } }

12. 5. 2 Array. List import java. util. *; public class Array. List. Main{

12. 5. 2 Array. List import java. util. *; public class Array. List. Main{ public static void main(String args[]) { Linked. List Collection Array. List<String> list = new Array. List<String>(); list. add("홍길동"); list. add("김삿갓"); list. add("이몽룡"); list. add("성춘향"); list. add("변사또"); System. out. println(list); System. out. println("Index 2 : " + list. get(2)); System. out. println("Index 0 : " + list. get(0)); String[] ar. List = new String[list. size()]; list. to. Array(ar. List); System. out. println("Index 1 : " + ar. List[1]); System. out. println("Index 3 : " + ar. List[3]); } } List Stack Vector Array. List

12. 5. 3 Hash. Set import java. util. *; public class Hash. Set. Main{

12. 5. 3 Hash. Set import java. util. *; public class Hash. Set. Main{ public static void main(String args[]) { Set<String> set = new Hash. Set<String>(); set. add("김삿갓"); set. add("홍길동"); set. add("춘향이"); set. add("이도령"); set. add("향단이"); System. out. println("Hash. Set : " + set); set. remove("이도령"); System. out. println(set. contains("홍길동")); Iterator<String> iter = set. iterator(); while(iter. has. Next()){ Hash. Set Collection String temp = iter. next(); System. out. print(temp + ", "); } System. out. println(); }} Set Sorted. Set

12. 5. 4 Vector I public class Vector. Main { public static void main(String[]

12. 5. 4 Vector I public class Vector. Main { public static void main(String[] args) { Vector<String> v = new Vector<String>(); //Vector 객체 생성 System. out. println("Vector 생성 직후의 size : " + v. size()); v. add. Element(new String("망아지")); Linked. List v. add. Element(new String("송아지")); Stack v. add. Element(new String("강아지")); v. add. Element(new String("병아리")); System. out. println("Vector에 데이터 삽입 후의 size : " + v. size()); for(int i=0; i< v. size(); i++){ Collection Vector Array. List String temp = v. element. At(i); System. out. println("Vector v의 " + i + "번째 : " + temp); } Vector v에 데이터가 삽입된 순서 } List } Vector v = new Vector(); 인덱스 : 0 new String("망아지") v. add. Element(new String(”망아지")); v. add. Element(new String("강아지")); v. add. Element(new String("송아지")); v. add. Element(new String("병아리")); 인덱스 : 1 new String(”송아지") 인덱스 : 2 new String(”강아지") 인덱스 : 3 new String(”병아리")

12. 5. 5 Vector II Vector<Object> v = new Vector<Object>(); //객체 생성 v. add.

12. 5. 5 Vector II Vector<Object> v = new Vector<Object>(); //객체 생성 v. add. Element(new Character('A')); //Wrapper 클래스의 사용 v. add. Element(new String("굼뱅이")); Vector v에 객체삽입 v. add. Element(new Integer(100)); //Wrapper 클래스의 사용 v. add. Element(new Integer(200)); //Wrapper 클래스의 사용 System. out. println("Vector의 size(): " + v. size()); v. insert. Element. At(new Float(3. 141592), 1); 1번째에 중간삽입, 1번째에 있던 데이터는 2번째가 된다. System. out. println("insert. Element. At()-size(): " + v. size()); v. set. Element. At("Hello", 3); System. out. println("set. Element()-size(): " + v. size()); System. out. println("v의 0번째: " System. out. println("v의 1번째: " System. out. println("v의 2번째: " System. out. println("v의 3번째: " System. out. println("v의 4번째: " + + + 3번째 존재하는 데이터를 수정 (Character)v. element. At(0)); (Float)v. element. At(1)); (String)v. element. At(2)); (String)v. element. At(3)); (Integer)v. element. At(4)); 삽입한 데이터 타입이 다르기 때문 에 하나씩 추출한 뒤 형변환 후 사용 if(v. contains("Hello")){ //데이터가 있는지 확인 int find = v. index. Of("Hello"); //데이터 위치 확인 //위치(인덱스)를 이용한 데이터의 추출 System. out. println("v의" + find + "번째: " + (String)v. element. At(find)); } "Hello" 검색

12. 5. 6 Auto. Boxing(자바 5. 0) 자바 1. 4까지 Vector v = new

12. 5. 6 Auto. Boxing(자바 5. 0) 자바 1. 4까지 Vector v = new Vector(); //객체 생성 v. add. Element(new Integer(100)); //Wrapper 클래스의 사용 v. add. Element(new Integer(200)); //Wrapper 클래스의 사용 Integer t 0 = (Integer)v. element. At(0); Integer t 1 = (Integer)v. element. At(1); 자바 5. 0 이상에서는 컴파일러 자바 5. 0 이후 가 내부에서 자동으로 객체를 적 절한 상수값으로 변경시켜 준다. Vector<Integer> v = new Vector<Integer>(); v. add. Element(100); //Auto. Boxing 발생 v. add. Element(200); //Auto. Boxing 발생 int a 0 = v. element. At(0); //Auto. Un. Boxing 발생 int a 1 = v. element. At(1); //Auto. Un. Boxing 발생 자바 5. 0 이상에서는 컴파일러 가 내부에서 자동으로 Wrapper 클래스의 객체로 변경시켜 준다.

12. 6. 1 Hash. Map import java. util. *; public class Hash. Map. Main{

12. 6. 1 Hash. Map import java. util. *; public class Hash. Map. Main{ Key public static void main(String args[]) { Value Map<String, Integer> map = new Hash. Map<String, Integer>(); map. put("홍길동", new Integer(1)); map. put("김삿갓", new Integer(2)); map. put("이도령", new Integer(3)); map. put("춘향이", new Integer(4)); map. put("향단이", new Integer(5)); System. out. println(map. get("홍길동")); System. out. println(map. get("김삿갓")); System. out. println(map. get("이도령")); System. out. println(map. get("춘향이")); System. out. println(map. get("향단이")); Hash. Map } } Hashtable Map Sorted. Map

12. 6. 2 Hashtable import java. util. Hashtable; public class Hashtable. Main { Key

12. 6. 2 Hashtable import java. util. Hashtable; public class Hashtable. Main { Key public static void main(String[] args) { Value Hashtable<String, Object> h = new Hashtable<String, Object>(); //Hashtable에 키와 데이터의 삽입 h. put("Name", new String("홍길동")); h. put("Age", new Integer(27)); h. put("Tel", new String("02 -1111 -2222")); h. put("Handphone", new String("017 -777 -9999")); h. put("Etc", new String("I'm a boy")); //키 값을 이용해서 객체 추출 String name = (String)h. get("Name"); Integer age = (Integer)h. get("Age"); } Hashtable } Hash. Map Sorted. Map

12. 7 Enumeration 과 Iterator

12. 7 Enumeration 과 Iterator

12. 7. 2 Vector에서의 Enumeration 키를 움직이는 방법 첫위치는 어떠한 데이터도 가르키지 않는다. 실제

12. 7. 2 Vector에서의 Enumeration 키를 움직이는 방법 첫위치는 어떠한 데이터도 가르키지 않는다. 실제 데이터가 있는지 확인 has. More. Elements() 0 1 2 1 true next. Element() 할 때마다 키가 움직임 true 5 6 next. Element() 데이가 있는지 확인할 때 has. More. Elements() 사용 next. Element()는 데이터 가 있는지 확인한 후 사 용 4 true next. Element() Vector 생성과 데이터 삽입 Vector<String> v = new Vector<String>(); v. add. Element(new String("망아지")); v. add. Element(new String("송아지")); v. add. Element(new String("강아지")); v. add. Element(new String("병아리")); 3 Enumeration 얻어내기 Enumeration<String> en = v. elements(); Enumeration을 이용해서 전체 데이터 추출 while(en. has. More. Elements()){ String temp = en. next. Element(); System. out. println(temp); }

12. 7. 3 Hashtable에서의 Enumeration hashtable에 객체의 삽입 Enumeration 얻기 Enumeration en = h.

12. 7. 3 Hashtable에서의 Enumeration hashtable에 객체의 삽입 Enumeration 얻기 Enumeration en = h. elements(); Hashtable의 값(Value)을 Enumeration 얻기 Hashtable<String, String> h = new Hashtable<String, String>(); h. put("1", new String("홍길동")); h. put("2", new String("안녕하세요")); h. put("3", new String("02 -1111 -2222")); h. put("4", new String("017 -777 -9999")); Enumeration<String> en = h. elements(); while(en. has. More. Elements()){ //데이터 얻기(다운캐스팅 필요) String temp = en. next. Element(); System. out. println(temp); } Hashtable의 키(Key)에 해당하는 Enumeration 얻기 Enumeration<String> en 2 = h. keys(); while(en 2. has. More. Elements()){ String temp = en 2. next. Element(); System. out. println(temp); }

12. 7. 4 Iterator(자바 1. 2) Vector의 Iterator Vector<String> v = new Vector<String>(); v.

12. 7. 4 Iterator(자바 1. 2) Vector의 Iterator Vector<String> v = new Vector<String>(); v. add. Element(new String("망아지")); v. add. Element(new String("송아지")); v. add. Element(new String("강아지")); v. add. Element(new String("병아리")); Iterator<String> iter = v. iterator(); while(iter. has. Next()){ String temp = iter. next(); System. out. println(temp); } Hashtable의 Iterator Hashtable<String, String> h = new Hashtable<String, String>(); h. put("1", new String("홍길동")); h. put("2", new String("안녕하세요")); h. put("3", new String("02 -1111 -2222")); h. put("4", new String("017 -777 -9999")); Iterator<String> iter 2 = h. values(). iterator(); while(iter 2. has. Next()){ String temp = iter 2. next(); System. out. println(temp); }

12. 7. 6 for each 문(자바 5. 0)의 예 import java. util. *; public

12. 7. 6 for each 문(자바 5. 0)의 예 import java. util. *; public class For. Each. Main{ public static void main(String[] args){ Array. List<String> ar = new Array. List<String>(); ar. add("안녕 1"); ar. add("안녕 2"); ar. add("안녕 3"); //1. 일반적인 For문 for (Iterator<String> i = ar. iterator(); i. has. Next(); ) { String tmp = i. next(); System. out. println(tmp); } //2. For Each문 Java SE 5. 0의 코드 for (String tmp : ar){ System. out. println(tmp); } } }