일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php 홈디렉토리 변경방법
- 안드로이드
- 리눅스
- 포트(Port)
- 벨팡
- 자바
- Collection Framework
- 나지보
- 컬렉션 프레임
- 스랄 특성
- End of Darkness
- game
- 게임
- 어플
- TCP 네트워크 방식의 연결
- 소캣(Socket)
- 비행기 모드
- 변경된 정보
- 에셋
- 히오스
- 안드로이드 Application Lifecycle
- 아이패드
- unity
- 나지보 특성
- tcp네트워크
- 기업의 행포
- 아이폰
- 집 정리
- tcp
- 명령어
- Today
- Total
Do Something IT
[[컬렉션 클래스]] Vector클래스 ,Stack 클래스,Queue와 LinkedList 클래스,Iterator 인터페이스,Enumeration 인터페이스,set 인터페이스_Hashset 클래스,set 인터페이스_Hashset 클래스 본문
[[컬렉션 클래스]] 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);
}
}
}
이 컬렉션 프레임워크들은 자료형을 지원해주고 그에 관한 조작 기능 관리 기능을 지원해준다.
이를 유용하게 이용할수 있도록 연습을 하도록하자.
'OtherLanguage > JAVA' 카테고리의 다른 글
자바 TCP 네트워크 (0) | 2010.07.10 |
---|---|
[JAVA] (오목네트워크게임)TCP 소켓 네트워크 프로그램 (1) | 2010.07.07 |
Swing (0) | 2010.06.30 |
쓰레드의 Wait()와 notify()사용 (0) | 2010.06.29 |
컬렉션 프레임 워크의 핵심 인터페이스(Java Collection Framework) (0) | 2010.06.28 |