on
[JAVA] 명품 자바 에센셜 예제 7장
[JAVA] 명품 자바 에센셜 예제 7장
예제 7-1 : 정수만 다루는 Vector 컬렉션 활용
문제: 정수만 다루는 Vector 제네릭 벡터를 생성하고 활용하는 사례를 보인다. 다음 코드에 대한 결과는 무엇인가?
package chap07; import java.util.Vector; //정수만다루는 Vector 제네릭 벡터를 생성하고 활용하는 사례를 보인다 . 다음 코드에 대한 결과는 무엇인가 public class VectorEx{ public static void main(String[] args) { Vector v=new Vector(); v.add(5); v.add(-3); v.add(-1); for(int i=0;i
//출력결과 벡터 내의 요소 객체 수 : 4 벡터의 현재 용량 : 10 5 4 100 -1 벡터에 있는 정수 합 : 108
예제 7-2 : Point클래스의 객체들만 저장하는 벡터 만들기
문제: 점(x,y)를 표현하는 Point 클래스의 객체만 다루는 벡터의 활용을 보여라.
package chap07; import java.util.Vector; //점(x,y)를 표현하는 point클래스의 객체만 다루는 벡터의 활용을 보여라. class Point{ private int x,y; public Point(int x,int y) { this.x=x; this.y=y; } public String toString() { return ("("+x+","+y+")"); } } public class PointVectorEx { public static void main(String[] args) { Vector v=new Vector(); v.add(new Point(3,5)); v.add(new Point(2,20)); for(int i=0;i
(2,3) (30,-8)
예제 7-3 : 문자열만 다루는 ArrayList 활용
문제: 이름을 4 개 입력받아 ArrayList 에 저장하고 , ArrayList에 저장된 이름을 모두 출력한 후 제일 긴 이름을 출력하라.
package chap07; import java.util.ArrayList; import java.util.Scanner; //이름을 4개 입력받아 ArrayList에 저장하고, ArrayList에 저장된 이름을 모두 출력한 후, 제일 긴 이름을 출력하라. public class ArrayListEx { public static void main(String[] args) { ArrayList array=new ArrayList(); Scanner sc=new Scanner(System.in); for(int i=0;i<4;i++) { System.out.println("이름을 입력하세요: "); String name=sc.nextLine(); array.add(name); } int max=0; String[] longnames=new String[3]; String longname=""; for(int i=0;imax) { longname=array.get(i); max=array.get(i).length(); }else if(array.get(i).length()==max){ longnames[i]=array.get(i); } } System.out.println("가장 길이가 긴: "+ longnames); } }
이름을 입력하세요>>Mike 이름을 입력하세요>>Jane 이름을 입력하세요>>Ashley 이름을 입력하세요>>Helen Mike Jane Ashley Helen 가장 긴 이름은 : Ashley
예제 7-4 : Iterator를 이용하여 정수 벡터 검색
문제: 예제 7-1의 코드 중에서 벡터 검색 부분을 Iterator를 이용하여 수정하라.
package chap07; import java.util.Iterator; import java.util.Vector; //예제 7-1의 코드 중에서 벡터 검색 부분을 Iterator를 이용하여 수정하라. public class IteratorEx { public static void main(String[] args) { Vector v=new Vector(); v.add(5); v.add(4); v.add(-1); v.add(2,100); Iterator it=v.iterator(); while(it.hasNext()) { int n=it.next(); System.out.println(n); } //Iterator를 이용하여 모든 정수 더하기 int sum=0; it=v.iterator(); while(it.hasNext()) { int n=it.next(); sum+=n; } System.out.println("벡터에 있는 정수의 합: "+ sum); } }
5 4 100 -1 벡터에 있는 정수 합 : 108
예제 7-5 : HashMap로 (영어, 한글)단어 쌍을 저장하고 검색하기
문제:영어 단어와 한글 단어의 쌍을 HashMap에 저장하고 , 영어 단어로 한글 단어를 검색하는 프로그램을 작성하라.
package chap07; import java.util.HashMap; import java.util.Iterator; import java.util.Scanner; import java.util.Set; public class HashMapDicEx { public static void main(String[] args) { //영어 단어와 한글 단어의 쌍을 저장하는 HashMap 컬렉션 생성, 영어단어로 한글 단어를 검색하는 프로그램 작성 HashMap dictionary=new HashMap(); dictionary.put("baby", "아기"); dictionary.put("love", "사랑"); dictionary.put("noteBook", "노트북"); Set keys=dictionary.keySet();//해시맵에 있는 모든 키를 담은 Set컬렉션 리턴 Iterator it=keys.iterator(); while(it.hasNext()) { String key=it.next(); String value=dictionary.get(key); System.out.println("("+key+","+value+")"); } System.out.println(); //영어 단어를 입력받고 한글 단어 검색 Scanner sc=new Scanner(System.in); for(int i=0;i<3;i++) { System.out.println("찾고 싶은 단어는?"); String eng=sc.nextLine(); String kor=dictionary.get(eng); } } }
//출력결과 (love,사랑)(apple,사과)(baby,아기) 찾고 싶은 단어는?apple 사과 찾고 싶은 단어는?babo babo는 없는 단어 입니다 찾고 싶은 단어는?love 사랑
예제 7-6 : 제네릭 스택 만들기
문제: 스택을 제네릭 클래스로 작성하고, String과 Integer형 스택을 사용하는 예를 보여라.
package chap07; class GStack{ int tos; Object[] stck;//스택 개체 public GStack() { tos=0; stck=new Object[10]; } public void push(T item) { if(tos==10) { return; }stck[tos]=item; tos++; } public T pop() { if(tos==0) { return null; } tos--; return (T)stck[tos]; } } public class MyStack { public static void main(String[] args) { // TODO Auto-generated method stub GStack stringStack=new GStack(); stringStack.push("seoul"); stringStack.push("busan"); stringStack.push("LA"); for(int n=0; n<3;n++) { System.out.println(stringStack.pop()); } GStack intStack=new GStack(); intStack.push(1); intStack.push(3); intStack.push(5); for(int n=0;n<3;n++) { System.out.println(intStack.pop()); } } }
//출력결과 LA busan seoul 5 3 1
from http://software-garden.tistory.com/39 by ccl(A) rewrite - 2021-12-27 00:27:32