반응형
Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Do Something IT

[[컬렉션 클래스]] Vector클래스 ,Stack 클래스,Queue와 LinkedList 클래스,Iterator 인터페이스,Enumeration 인터페이스,set 인터페이스_Hashset 클래스,set 인터페이스_Hashset 클래스 본문

OtherLanguage/JAVA

[[컬렉션 클래스]] Vector클래스 ,Stack 클래스,Queue와 LinkedList 클래스,Iterator 인터페이스,Enumeration 인터페이스,set 인터페이스_Hashset 클래스,set 인터페이스_Hashset 클래스

아낙시만더 2010. 6. 30. 15:11
반응형

 [[컬렉션 클래스]]

Vector클래스 : 특정형의 배열을 입력받아 동적으로 가변길이를 정의 할수 있게 해준다.

즉 크기가 확정되지 않은 배열을 사용하는 경우에 편리하다.

Vector는 확장 for문을 이용하여 객체의 끝을 체크하지않고도 하나씩 차례대로 접근할 수 있도록 한다.

for( 자료형 접근 변수명: 배열이나 컬렉션 변수명){반복코드}

이 의 소스는 아래와 같다.

public class Vector {
 public static void main(String[] args) {
  String []arr={"진달래","백합","개나리","튜율립","장미","영철","영철"};
  java.util.Vector<String> vec = new java.util.Vector<String>(4,3);//끝의 4,3중 4는 선언시 용량이고 3은 추가시 3시 가변길이가 늘어난다.
  System.out.println("vec.size() : "+vec.size());
  System.out.println("vec.capacity() : "+vec.capacity());
  for(int i=0;i<arr.length;i++)vec.add(arr[i]);
  //확장 for문 : vec의 자료형을 검사하여 아닐때까지 반복한다.
  for(String item : vec)System.out.print(item+"\n");
  System.out.println();
  System.out.println("vec.size() : "+vec.size());
  System.out.println("vec.capacity() : "+vec.capacity());
 }
}

 


  Stack 클래스 : 스택구조를 지원해주는 클래스이다. 소스는 아래와 같다.

public class Stack {
 public static void main(String[] args) {
  String []arr={"진달래","백합","개나리","튤립","장미"};
  java.util.Stack<String> stk= new java.util.Stack<String>();
  for(int i=0;i<arr.length;i++)stk.push(arr[i]);
  while(!stk.isEmpty())System.out.print(stk.pop()+"\t");
 }
}

 

  Queue와 LinkedList 클래스 : LinkedList로 구현된 Queue를 지원해주는 클래스이다. 소스는 아래와 같다.

import java.util.LinkedList;

public class QueueLink {
 public static void main(String[] args) {
  String []arr={"진달래","백합","개나리","튤립","장미"};
  LinkedList<String> que= new LinkedList<String>();
  for(int i=0;i<arr.length;i++)que.offer(arr[i]);
  while(que.peek()!=null)
   System.out.println(que.poll()+"\t");
 }
}

  Iterator 인터페이스

Iterator 인터페이스는 컬렉션 객체에 저장된 데이터에 순차적으로 하나씩 접근하고자 할때
사용된다. iterator 인터페이스는 인덱스가 아닌, 다음 메소드를 통해서 저장된 데이터를 
 하나씩 순서대로 접근하면서 가저온다.

public class Iterator {
 public static void main(String[] args) {
  String []arr={"진달래","백합","개나리","튜율립","장미","영철","영철"};
  java.util.Vector<String> vec = new java.util.Vector<String>(4,3);
  for(int i=0;i<arr.length;i++)vec.add(arr[i]);
  java.util.Iterator<String> item = vec.iterator();
  while(item.hasNext())// 순차적인 접근 가능.
   System.out.println(item.next()+"\t");  
 }
}

  Enumeration 인터페이스

 Enumeration 인터페이스는 컬렉션에 저장된  요소들을 순차적으로 열거 하면서 접근하는 
 메소드를 제공한다. 때문에 List 인터페이스로 구현한 클래스인 Vector에서 주로 사용한다. 

public class Enumeration {
 public static void main(String[] args) {
  String []arr={"진달래","백합","개나리","튜율립","장미","영철","영철"};
  java.util.Vector<String> vec = new java.util.Vector<String>(4,3);
  for(int i=0;i<arr.length;i++)vec.add(arr[i]);
  java.util.Enumeration<String> item = vec.elements();
  while(item.hasMoreElements())
   System.out.println(item.nextElement()+"\t");  
 }
}

   set 인터페이스_Hashset 클래스

set 인터페이스는 수학의 집합에서 중복을 허용하지 않듯이 중복을
 허용하지 않는 컬렉션 프레임 워크이다.

package exam07;

import java.util.HashSet;

public class SetInterface {
 public static void main(String[] args) {
  HashSet<String> set= new HashSet<String>();
  set.add("진달래");set.add("백합");
  set.add("튤립");set.add("개나리");
  set.add("백합");set.add("진달래");
  set.add("장미");
  for(String item: set)
   System.out.println(item+"\t");
 }
}

 

   set 인터페이스_Hashset 클래스

//  자바에서는 인덱스로 원하는 항목을 찾아가는 대신 값으로 즉,
//  내용 검색이 가능하도록 하는 Map인터페이스를 제공한다.
//  Map인터페이스는 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는
//  컬렉션 클래서를 구현하는데 사용한다. 이때 키에 의해 데이터 접근이 가능하기
//  때문에 키는 중복을 허용하지 않는다 하지만 값은 중복을 허용한다.
//  Map인터페이스를 구현한 클래스로는 Hashtable,HashMap,
//  LinkedHashMap,SortedMap,TreeMap이 있다.
//  HashTable은 인덱스가 아닌 키값으로 원하는 테이블 항목을 검색하기 때문에
//  검색속도가 굉장히 빠르다.
//  자바에서는 해시 테이블을 위해서 HashTable 클래스를 제공하는데, 이 클래스로 객체로
//  생성할 경우 키와 값에 대한 데이터 타입을 지정해야 한다.

import java.util.Hashtable;
import java.util.Scanner;
import java.util.Set;
public class MapInterface {
 public static void main(String[] args) {
  Hashtable<String, Double>ht= new Hashtable<String, Double>();
  ht.put("김형중",182.5);
  ht.put("금잔디",163.6);
  ht.put("김범",180.5);
  ht.put("구준표",187.5);
  Scanner input = new Scanner(System.in);
  System.out.print("#이름을 입력하세요.");
  String key=input.nextLine();
  double height= ht.get(key);//key를 통해 데이터를 받아온다.
  System.out.println(key+"의 신장"+height);
  System.out.println("---------------------");
  Set<String>set=ht.keySet();//해시 테이블의 키에대한 Set 객체 반환받음
  for(String item:set){//
   height=ht.get(item);
   System.out.println(item+"\t"+height);
  }  
 }
}

이 컬렉션 프레임워크들은 자료형을 지원해주고 그에 관한 조작 기능 관리 기능을 지원해준다. 
이를 유용하게 이용할수 있도록 연습을 하도록하자. 


반응형
Comments