문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
프로그램:java:ㄴhomework:book_source:ch13 [2022/01/04 11:18] clayeryan@gmail.com 만듦 |
프로그램:java:ㄴhomework:book_source:ch13 [2023/07/13 17:29] (현재) clayeryan@gmail.com ↷ 문서가 programmer:java:ㄴhomework:book_source:ch13에서 프로그램:java:ㄴhomework:book_source:ch13(으)로 이동되었습니다 |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== | + | ====== |
+ | ===== 컬렉션 프레임워크 개요 ===== | ||
+ | |||
+ | ===== List 인터페이스 ===== | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.List; | ||
+ | |||
+ | public class ListEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | List list = new ArrayList(); | ||
+ | list.add(1); | ||
+ | list.add(3); | ||
+ | list.add(5); | ||
+ | System.out.println(list); | ||
+ | |||
+ | for(int i=0; | ||
+ | System.out.println(i+":" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Vector; | ||
+ | |||
+ | public class ListEx2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | Vector list = new Vector(); | ||
+ | list.add(1.2); | ||
+ | list.add(Math.PI); | ||
+ | list.addElement(3.4); | ||
+ | |||
+ | // 향상된 for문 | ||
+ | for (Object o : list) { | ||
+ | System.out.println(o); | ||
+ | } | ||
+ | double num = 3.4; | ||
+ | |||
+ | // 해당 요소의 인덱스 (없으면 -1) | ||
+ | int index = list.indexOf(num); | ||
+ | if (index >= 0) { // 요소가 존재함 | ||
+ | System.out.println(num + " 의 위치 :" + index); | ||
+ | } else { // 존재하지 않음 | ||
+ | System.out.println(num + " 는 list 에 없습니다" | ||
+ | } | ||
+ | |||
+ | num = 1.2; | ||
+ | // 값이 존재하는지 확인 | ||
+ | if (list.contains(num)) { | ||
+ | // 제거(이전 메서드) | ||
+ | list.removeElement(num); | ||
+ | System.out.println(num + " 삭제됨" | ||
+ | } | ||
+ | |||
+ | // 해당 요소의 인덱스 (없으면 -1) | ||
+ | System.out.println(list.indexOf(num)); | ||
+ | System.out.println(list); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Shape.java** | ||
+ | <code java> | ||
+ | |||
+ | abstract class Shape { | ||
+ | |||
+ | // 필드 | ||
+ | int x, y; | ||
+ | |||
+ | // 생성자 | ||
+ | Shape() { | ||
+ | this(0, 0); | ||
+ | } | ||
+ | Shape(int x, int y) { | ||
+ | this.x = x; | ||
+ | this.y = y; | ||
+ | } | ||
+ | |||
+ | // 추상메서드 | ||
+ | abstract double area(); | ||
+ | abstract double length(); | ||
+ | |||
+ | // 일반 메서드 | ||
+ | public String getLocation() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Circle.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | public class Circle extends Shape { | ||
+ | |||
+ | // 필드 | ||
+ | double r; | ||
+ | |||
+ | // 생성자 | ||
+ | Circle() { | ||
+ | this(1); | ||
+ | } | ||
+ | Circle(double r) { | ||
+ | this.r = r; | ||
+ | } | ||
+ | |||
+ | // 메서드 재정의(오버라이딩) | ||
+ | @Override | ||
+ | double area() { | ||
+ | return (r * r) * Math.PI; | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | double length() { | ||
+ | return (r * 2) * Math.PI; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Rectangle.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | public class Rectangle extends Shape { | ||
+ | |||
+ | // 필드 | ||
+ | int w,h; | ||
+ | |||
+ | // 생성자 | ||
+ | Rectangle() { | ||
+ | this(1, | ||
+ | } | ||
+ | Rectangle(int w, int h) { | ||
+ | this.w = w; | ||
+ | this.h = h; | ||
+ | } | ||
+ | |||
+ | // 메서드 재정의(오버라이딩) | ||
+ | @Override | ||
+ | double area() { | ||
+ | return (w * h); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | double length() { | ||
+ | return (w + h) * 2; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **ListEx3.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.List; | ||
+ | |||
+ | public class ListEx3 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | List list = new ArrayList(); | ||
+ | // list 객체에 요소 추가 | ||
+ | list.add(new Circle(3.0)); | ||
+ | list.add(new Rectangle(3, | ||
+ | list.add(new Circle(5)); | ||
+ | list.add(new Rectangle(5, | ||
+ | |||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | } | ||
+ | |||
+ | private static double sumLength(List list) { | ||
+ | double sumlength = 0; | ||
+ | |||
+ | for (int i=0; i< | ||
+ | // list 객체 형변환 | ||
+ | Shape s = (Shape)list.get(i); | ||
+ | sumlength += s.length(); | ||
+ | } | ||
+ | return sumlength; | ||
+ | } | ||
+ | |||
+ | private static double sumArea(List list) { | ||
+ | double sumarea = 0; | ||
+ | |||
+ | for (int i = 0; i < list.size(); | ||
+ | // list 객체 형변환과 메서드 호출 동시에 | ||
+ | sumarea += ((Shape)list.get(i)).area(); | ||
+ | } | ||
+ | return sumarea; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.LinkedList; | ||
+ | |||
+ | public class ArrayListCompareLinkedList { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | ArrayList alist = new ArrayList(); | ||
+ | LinkedList llist = new LinkedList(); | ||
+ | |||
+ | for (int i=0; i< | ||
+ | alist.add(i); | ||
+ | llist.add(i); | ||
+ | } | ||
+ | |||
+ | System.out.println(" | ||
+ | long start = System.currentTimeMillis(); | ||
+ | for (int i=0; i< | ||
+ | alist.get(i); | ||
+ | } | ||
+ | long end = System.currentTimeMillis(); | ||
+ | System.out.println(end-start); | ||
+ | |||
+ | System.out.println(" | ||
+ | start = System.currentTimeMillis(); | ||
+ | for (int i=0; i< | ||
+ | llist.get(i); | ||
+ | } | ||
+ | end = System.currentTimeMillis(); | ||
+ | System.out.println(end-start); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.LinkedList; | ||
+ | |||
+ | public class ArrayListCompareLinkedList2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | ArrayList alist = new ArrayList(); | ||
+ | LinkedList llist = new LinkedList(); | ||
+ | |||
+ | for (int i=0; i< | ||
+ | alist.add(i); | ||
+ | llist.add(i); | ||
+ | } | ||
+ | |||
+ | System.out.println(" | ||
+ | long start = System.currentTimeMillis(); | ||
+ | for (int i=0; i<10000; i++) { | ||
+ | alist.add(500, | ||
+ | } | ||
+ | long end = System.currentTimeMillis(); | ||
+ | System.out.println(end-start); | ||
+ | |||
+ | System.out.println(" | ||
+ | start = System.currentTimeMillis(); | ||
+ | for (int i=0; i<10000; i++) { | ||
+ | llist.add(500, | ||
+ | } | ||
+ | end = System.currentTimeMillis(); | ||
+ | System.out.println(end-start); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ===== Set 인터페이스 ===== | ||
+ | : | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.HashSet; | ||
+ | import java.util.Set; | ||
+ | |||
+ | public class HashSetEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Object타입의 배열 생성 | ||
+ | Object[] arr = {" | ||
+ | |||
+ | // HashSet 객체 생성 | ||
+ | Set set = new HashSet(); | ||
+ | |||
+ | // set객체에 배열의 모든 요소 add | ||
+ | for(int i=0;i < arr.length; | ||
+ | set.add(arr[i]); | ||
+ | } | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(set); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.HashSet; | ||
+ | import java.util.Set; | ||
+ | |||
+ | public class HashSetEx2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // HashSet 객체 생성 | ||
+ | Set set = new HashSet(); | ||
+ | |||
+ | // 문자열 객체 두개 추가 | ||
+ | set.add(new String(" | ||
+ | set.add(new String(" | ||
+ | |||
+ | // Member 객체 두개 추가(사용자 정의 클래스) | ||
+ | set.add(new Member(" | ||
+ | set.add(new Member(" | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(set); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | public class Member { | ||
+ | |||
+ | // 필드 | ||
+ | String name; | ||
+ | int age; | ||
+ | |||
+ | // 생성자 | ||
+ | Member (String name, int age) { | ||
+ | this.name = name; | ||
+ | this.age = age; | ||
+ | } | ||
+ | |||
+ | // toSring() 메서드 재정의 | ||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | // equals() 메서드 재정의 | ||
+ | @Override | ||
+ | public boolean equals(Object obj) { | ||
+ | if(obj instanceof Member) { | ||
+ | Member m = (Member)obj; | ||
+ | return this.name.equals(m.name) && this.age == m.age; | ||
+ | } else { | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // hashCode() 메서드 재정의 | ||
+ | @Override | ||
+ | public int hashCode() { | ||
+ | return this.name.hashCode() + age; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | : | ||
+ | |||
+ | **Descend.java** | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Comparator; | ||
+ | |||
+ | public class Descend implements Comparator { | ||
+ | |||
+ | @Override | ||
+ | public int compare(Object o1, Object o2) { | ||
+ | Comparable c1 = (Comparable)o1; | ||
+ | Comparable c2 = (Comparable)o2; | ||
+ | return c1.compareTo(c2) * (-1); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | **TreeSetEx.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.SortedSet; | ||
+ | import java.util.TreeSet; | ||
+ | |||
+ | public class TreeSetEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | SortedSet set = new TreeSet(); | ||
+ | String from = " | ||
+ | String to = " | ||
+ | |||
+ | // set객체에 추가 | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(set); | ||
+ | System.out.println(" | ||
+ | // from~to 검색 | ||
+ | System.out.println(set.subSet(from, | ||
+ | System.out.println(" | ||
+ | // from~to+" | ||
+ | System.out.println(set.subSet(from, | ||
+ | |||
+ | // 내림차순 정렬 | ||
+ | set = new TreeSet(new Descend()); | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | |||
+ | System.out.println(set); | ||
+ | System.out.println(" | ||
+ | |||
+ | // to~from (반대로 검색) | ||
+ | System.out.println(set.subSet(to, | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Member2.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | public class Member { | ||
+ | |||
+ | // 필드 | ||
+ | String name; | ||
+ | int age; | ||
+ | |||
+ | // 생성자 | ||
+ | Member (String name, int age) { | ||
+ | this.name = name; | ||
+ | this.age = age; | ||
+ | } | ||
+ | |||
+ | // toSring() 메서드 재정의 | ||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | // equals() 메서드 재정의 | ||
+ | @Override | ||
+ | public boolean equals(Object obj) { | ||
+ | if(obj instanceof Member) { | ||
+ | Member m = (Member)obj; | ||
+ | return this.name.equals(m.name) && this.age == m.age; | ||
+ | } else { | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // hashCode() 메서드 재정의 | ||
+ | @Override | ||
+ | public int hashCode() { | ||
+ | return this.name.hashCode() + age; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **AgeDesc.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Comparator; | ||
+ | |||
+ | public class AgeDesc implements Comparator { | ||
+ | |||
+ | @Override | ||
+ | public int compare(Object o1, Object o2) { | ||
+ | // Member2로 형변환 | ||
+ | Member2 m1 = (Member2)o1; | ||
+ | Member2 m2 = (Member2)o2; | ||
+ | |||
+ | // 나이로 내림차순 정렬 | ||
+ | return m2.age - m1.age; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **NameDesc.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Comparator; | ||
+ | |||
+ | public class NameDesc implements Comparator { | ||
+ | |||
+ | @Override | ||
+ | public int compare(Object o1, Object o2) { | ||
+ | // Member2로 형변환 | ||
+ | Member2 m1 = (Member2)o1; | ||
+ | Member2 m2 = (Member2)o2; | ||
+ | |||
+ | // 이름으로 내림차순 정렬 | ||
+ | return m1.compareTo(m2) * (-1); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | **TreeSetEx2.java** | ||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Comparator; | ||
+ | import java.util.TreeSet; | ||
+ | |||
+ | public class TreeSetEx2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // 이름순으로 정렬 | ||
+ | TreeSet set = new TreeSet(); | ||
+ | |||
+ | set.add(new Member2(" | ||
+ | set.add(new Member2(" | ||
+ | set.add(new Member2(" | ||
+ | System.out.println(set); | ||
+ | |||
+ | // 나이 오름차순으로 정렬하여 출력 (익명 클래스로 인터페이스 구현) | ||
+ | TreeSet set2 = new TreeSet(new Comparator(){ | ||
+ | |||
+ | @Override | ||
+ | public int compare(Object o1, Object o2) { | ||
+ | Member2 m1 = (Member2)o1; | ||
+ | Member2 m2 = (Member2)o2; | ||
+ | return m1.age - m2.age; | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | set2.add(new Member2(" | ||
+ | set2.add(new Member2(" | ||
+ | set2.add(new Member2(" | ||
+ | System.out.println(set2); | ||
+ | |||
+ | // 이름의 내림차순으로 정렬하여 출력 | ||
+ | TreeSet set3 = new TreeSet(new NameDesc()); | ||
+ | set3.add(new Member2(" | ||
+ | set3.add(new Member2(" | ||
+ | set3.add(new Member2(" | ||
+ | System.out.println(set3); | ||
+ | |||
+ | // 나이의 내림차순으로 정렬하여 출력 | ||
+ | TreeSet set4 = new TreeSet(new AgeDesc()); | ||
+ | set4.add(new Member2(" | ||
+ | set4.add(new Member2(" | ||
+ | set4.add(new Member2(" | ||
+ | System.out.println(set4); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | ===== Iterator와 Enumeration ===== | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.HashSet; | ||
+ | import java.util.Iterator; | ||
+ | import java.util.List; | ||
+ | import java.util.Set; | ||
+ | |||
+ | public class IteratorEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Iterator 객체 선언 | ||
+ | Iterator it = null; | ||
+ | |||
+ | // List 객체와 Set 객체 생성 | ||
+ | List list = new ArrayList(); | ||
+ | Set set = new HashSet(); | ||
+ | |||
+ | // list와 set에 5개의 값 추가 | ||
+ | for(int i=1; i< | ||
+ | list.add(i); | ||
+ | set.add(i+5); | ||
+ | } | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(list); | ||
+ | System.out.println(set); | ||
+ | |||
+ | // list에서 Iterator 객체로 생성 | ||
+ | it = list.iterator(); | ||
+ | |||
+ | // lit의 Iterator 객체 출력 | ||
+ | System.out.println(" | ||
+ | iteratorPrint(it); | ||
+ | |||
+ | // set에서 Iterator 객체로 생성 | ||
+ | it = set.iterator(); | ||
+ | |||
+ | // set의 Iterator 객체 출력 | ||
+ | System.out.println(" | ||
+ | iteratorPrint(it); | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(list); | ||
+ | System.out.println(set); | ||
+ | |||
+ | } | ||
+ | |||
+ | private static void iteratorPrint(Iterator it) { | ||
+ | // Iterator 객체 반복 (다음 요소가 있으면 반복) | ||
+ | while(it.hasNext()) { | ||
+ | // Iterator 객체의 다음 요소 읽어와 출력 | ||
+ | System.out.println(it.next()); | ||
+ | // 현재 요소 삭제 | ||
+ | it.remove(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Enumeration; | ||
+ | import java.util.Iterator; | ||
+ | import java.util.Vector; | ||
+ | |||
+ | public class EnumerationEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | Vector v = new Vector(); | ||
+ | for(int i=1; i<= 5;i++) { | ||
+ | v.add(i); | ||
+ | } | ||
+ | |||
+ | // Enumeration 으로 출력 | ||
+ | Enumeration e = v.elements(); | ||
+ | System.out.println(" | ||
+ | while(e.hasMoreElements()) { | ||
+ | System.out.println(e.nextElement()); | ||
+ | } | ||
+ | |||
+ | // Iterator로 출력 | ||
+ | Iterator it = v.iterator(); | ||
+ | System.out.println(" | ||
+ | while(it.hasNext()) { | ||
+ | System.out.println(it.next()); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.Enumeration; | ||
+ | import java.util.Iterator; | ||
+ | |||
+ | public class IterVSsize { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | ArrayList list = new ArrayList(); | ||
+ | |||
+ | for (int i=0; i< | ||
+ | list.add(i); | ||
+ | } | ||
+ | |||
+ | // Iterator 실행 시간 | ||
+ | long start = System.currentTimeMillis(); | ||
+ | Iterator it = list.iterator(); | ||
+ | while (it.hasNext()) { | ||
+ | it.next(); | ||
+ | } | ||
+ | long end = System.currentTimeMillis(); | ||
+ | System.out.println(" | ||
+ | |||
+ | // size 실행 시간 | ||
+ | start = System.currentTimeMillis(); | ||
+ | for (int i=0; i< | ||
+ | list.get(i); | ||
+ | } | ||
+ | end = System.currentTimeMillis(); | ||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.List; | ||
+ | import java.util.ListIterator; | ||
+ | |||
+ | public class ListIteratorEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // 리스트 객체 생성 | ||
+ | List list = new ArrayList(); | ||
+ | // 리스트 객체에 값 추가 | ||
+ | for(int i=1; | ||
+ | list.add(i); | ||
+ | } | ||
+ | // ListIterator 객체 생성 | ||
+ | ListIterator lit = list.listIterator(); | ||
+ | // 다음 요소 반복 출력 | ||
+ | while(lit.hasNext()) { | ||
+ | System.out.println(lit.next()); | ||
+ | } | ||
+ | // 이전 요소 반복 출력 | ||
+ | while(lit.hasPrevious()) { | ||
+ | System.out.println(lit.previous()); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Map 인터페이스 ===== | ||
+ | |||
+ | : | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.HashMap; | ||
+ | import java.util.Map; | ||
+ | |||
+ | public class HashMapEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Map 객체 생성 | ||
+ | Map map =new HashMap(); | ||
+ | |||
+ | // 이름이 담긴 문자열 배열 생성 | ||
+ | String[] names = {" | ||
+ | // 숫자가 담긴 정수 배열 생성 | ||
+ | int[] nums = {1234, | ||
+ | |||
+ | // Map 객체에 두 배열의 값들을 키와 밸류 쌍으로 저장 | ||
+ | for(int i=0; | ||
+ | map.put(names[i], | ||
+ | } | ||
+ | |||
+ | // 출력 | ||
+ | System.out.println(map); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.HashMap; | ||
+ | import java.util.Iterator; | ||
+ | import java.util.Map; | ||
+ | import java.util.Set; | ||
+ | |||
+ | public class HashMapEx2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Map 객체 생성 | ||
+ | Map map =new HashMap(); | ||
+ | |||
+ | // 이름이 담긴 문자열 배열 생성 | ||
+ | String[] names = {" | ||
+ | // 숫자가 담긴 정수 배열 생성 | ||
+ | int[] nums = {1234, | ||
+ | |||
+ | // Map 객체에 두 배열의 값들을 키와 밸류 쌍으로 저장 | ||
+ | for(int i=0; | ||
+ | map.put(names[i], | ||
+ | } | ||
+ | |||
+ | //Map 객체에서 key 들만 조회하기 | ||
+ | Set< | ||
+ | for(String key : keys) { | ||
+ | System.out.println(key + " | ||
+ | } | ||
+ | System.out.println(" | ||
+ | Iterator it = keys.iterator(); | ||
+ | while(it.hasNext()) { | ||
+ | String a = (String)it.next(); | ||
+ | System.out.println(a+" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.Collection; | ||
+ | import java.util.HashMap; | ||
+ | import java.util.Iterator; | ||
+ | import java.util.Map; | ||
+ | |||
+ | public class HashMapEx3 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Map 객체 생성 | ||
+ | Map map =new HashMap(); | ||
+ | |||
+ | // 이름이 담긴 문자열 배열 생성 | ||
+ | String[] names = {" | ||
+ | // 숫자가 담긴 정수 배열 생성 | ||
+ | int[] nums = {1234, | ||
+ | |||
+ | // Map 객체에 두 배열의 값들을 키와 밸류 쌍으로 저장 | ||
+ | for(int i=0; | ||
+ | map.put(names[i], | ||
+ | } | ||
+ | |||
+ | //Map 객체에서 value 들만 조회하기 | ||
+ | Collection values = map.values(); | ||
+ | |||
+ | // 향상된 for문으로 출력 | ||
+ | for(Object i : values) { | ||
+ | System.out.println(i); | ||
+ | } | ||
+ | |||
+ | // Iterator 객체로 출력 | ||
+ | Iterator it = values.iterator(); | ||
+ | while(it.hasNext()) { | ||
+ | System.out.println(it.next()); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.util.HashMap; | ||
+ | import java.util.Map; | ||
+ | import java.util.Set; | ||
+ | |||
+ | public class HashMapEx4 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | // Map 객체 생성 | ||
+ | Map map =new HashMap(); | ||
+ | |||
+ | // 이름이 담긴 문자열 배열 생성 | ||
+ | String[] names = {" | ||
+ | // 숫자가 담긴 정수 배열 생성 | ||
+ | int[] nums = {1234, | ||
+ | |||
+ | // Map 객체에 두 배열의 값들을 키와 밸류 쌍으로 저장 | ||
+ | for(int i=0; | ||
+ | map.put(names[i], | ||
+ | } | ||
+ | |||
+ | // Map 객체는 (키,값) 쌍으로 이루어진 객체들의 모임 | ||
+ | // (키, 값) 쌍으로 | ||
+ | Set entry = map.entrySet(); | ||
+ | for(Object o : entry) { | ||
+ | Map.Entry m = (Map.Entry)o; | ||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | : | ||
+ | |||
+ | <code java> | ||
+ | package chapter13; | ||
+ | |||
+ | import java.io.FileInputStream; | ||
+ | import java.io.FileOutputStream; | ||
+ | import java.io.IOException; | ||
+ | import java.util.Properties; | ||
+ | |||
+ | |||
+ | |||
+ | public class PropertiesEx { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | try { | ||
+ | Properties pr = new Properties(); | ||
+ | |||
+ | // properties 파일 읽어오기 | ||
+ | FileInputStream reader = new FileInputStream( | ||
+ | " | ||
+ | + "/ | ||
+ | // Properties 객체에 로드 | ||
+ | pr.load(reader); | ||
+ | System.out.println(pr); | ||
+ | System.out.println(" | ||
+ | |||
+ | // property에 키, | ||
+ | pr.put(" | ||
+ | System.out.println(pr); | ||
+ | |||
+ | // properties 파일로 출력 | ||
+ | pr.store(new FileOutputStream( | ||
+ | " | ||
+ | + " | ||
+ | } catch (IOException e) { | ||
+ | System.out.println(e.getMessage()); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ |