문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
프로그램:java:ㄴhomework:book_source:ch13 [2022/01/05 12:32] 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(으)로 이동되었습니다 |
||
---|---|---|---|
줄 76: | 줄 76: | ||
</ | </ | ||
- | **Shape.java | + | **Shape.java** |
<code java> | <code java> | ||
줄 300: | 줄 300: | ||
<code java> | <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> | <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> | <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; | ||
+ | } | ||
+ | } | ||
</ | </ | ||
줄 313: | 줄 402: | ||
: | : | ||
- | Descend.java | + | **Descend.java** |
<code java> | <code java> | ||
줄 475: | 줄 564: | ||
**TreeSetEx2.java** | **TreeSetEx2.java** | ||
<code 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); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
</ | </ | ||
줄 480: | 줄 619: | ||
<code java> | <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> | <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> | <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> | <code java> | ||
+ | package chapter13; | ||
- | </ | + | import java.util.ArrayList; |
+ | import java.util.List; | ||
+ | import java.util.ListIterator; | ||
- | ===== Map 인터페이스 ===== | + | public class ListIteratorEx { |
- | <code java> | + | public static void main(String[] args) { |
+ | |||
+ | // 리스트 객체 생성 | ||
+ | List list = new ArrayList(); | ||
+ | // 리스트 객체에 값 추가 | ||
+ | for(int i=1;i<=5;i++) { | ||
+ | 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> | <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> | <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> | <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> | <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(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
</ | </ | ||
줄 522: | 줄 959: | ||
<code java> | <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()); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
</ | </ |