본문 바로가기

프로그램언어/자바

Collection 계열 클래스4

Vactor

ArrayListd와 사용방법이 동일(메소드 호출방법과 사용법)하다.

Vactor 클래스도 List 계열이다.

 

데이터를 삽입하고 출력해보자.

import java.util.List;

import java.util.Vector;

 

public class ex01 {

 

    public static void main(String[] args) {

        Vector<String> vector = new Vector<>();

        vector.add("A");

        vector.add("B");

        vector.add("C");

        System.out.println(vector);

 

        //3번째 요소에 삽입하기

        vector.add(2,"X");

        System.out.println(vector);

 

        //첫번째 요소에 삽입하기

        vector.add(0,"Y");

        System.out.println(vector);

 

        for(String value : vector)

            System.out.print(value + " ");

    }

}

실행 결과]
[A, B, C]
[A, B, X, C]
[Y, A, B, X, C]
Y A B X C 

 

 

LinkedList

데이터의 추가와 삭제가 빈번히 발생할때 사용하면 편리하다.

add() 데이터 추가
add(int index, E element) index 위치에 element값을 추가
addFirst(E element) 맨 앞에 element값을 추가
addLast(E e) 맨 뒤에 element값을 추가
clear() 리스트의 모든 인자를 삭제
clone() 리스트의 모든 인자를 복사
E element() 리스트의 첫 번째 요소를 반환
E get(int index) index 위치의 값을 반환
E getFirst() 리스트의 첫 번째 값을 반환
E getLast() 리스트의 마지막 번째 값을 반환
indexOf(Object o) 리스트의 우측부터 검사하면서 요소의 값이 첫 번째로 저정된 위치를 반환 
lastIndexOf(Object o) 리스트의 좌측부터 검사하면서 요소의 값이 첫 번째로 저정된 위치를 반환 

 

데이터 삽입, 추출, 삭제, 크기등을 출력해보자.

import java.util.*;

 

public class ex01 {

 

    public static void main(String[] args) {

        LinkedList list = new LinkedList();

        list.add("10");

        list.add("30");

        list.add("70");

        System.out.println(list);

 

        // 데이터 삽입

        list.add(2, 50);

        System.out.println(list);

 

        // 두번째 위치의 값 출력

        System.out.println("두 번째 요소의 값 : " + list.get(1));

 

        // 30의 위치출력

        System.out.println("30의 위치 : " + list.indexOf("30"));

 

        // 세번째 위치의 값 삭제

        list.remove(2);

        System.out.println(list);

 

        // 총 리스트의 수

        System.out.println("총 데이터 수 : " + list.size());

    }

}

실행 결과]
[10, 30, 70]
[10, 30, 50, 70]
두 번째 요소의 값 : 30
30의 위치 : 1
[10, 30, 70]
총 데이터 수 : 3

 

 

Stack

데이터를 저장과 인출을 한쪽에서만 할 수 있다.

LIFO(Last In First Out)구조로 이루어져 있다.

 

empty() 스택이 비어있는지 확인
peek() 스택의 맨위에 저장된 값을 반환
push() 스택의 맨위쪽에 데이터 삽입
pop() 스택의 맨위쪽의 데이터를 삭제
search(Object o) 인자로 전달값의 위치를 반환

 

데이터 삽입, 삭제, 추출하기

import java.util.*;

 

public class ex01 {

 

    public static void main(String[] args) {

        Stack stack = new Stack();

        stack.push("홍길동");

        stack.push("일지매");

        stack.push("임꺽정");

        System.out.println(stack);

 

        // 삭제하기

        stack.pop();

        System.out.println(stack);

        // 스택의 맨 위쪽값 추출

        System.out.println(stack.peek());

    }

}

 

실행 결과]
[홍길동, 일지매, 임꺽정]
[홍길동, 일지매]
일지매

 

HashTable

데이터를 key와 value로 한쌍으로 저정한다.

key는 중복되지 않는다.

key와 value는 null을 허용하지 않는다.

배열에 데이터를 저장하기 때문에 검색속도가 빠르다.

 

import java.util.*;

 

public class ex01 {

 

    public static void main(String[] args) {

        Map map = new Hashtable();

        map.put(1, "홍길동");

        map.put(2, "일지매");

        map.put(3, "이순신");

 

        // 키로 값추출

        System.out.println(map.get(1));

        // null값 에러

        map.put(4, null);

        System.out.println(map.get(4));

    }

}

실행 결과]

홍길동

Exception in thread "main" java.lang.NullPointerException

            at java.util.Hashtable.put(Unknown Source)

            at ex01.main(ex01.java:12)

 

TreeSet

Set 계열 콜렉션으로 중복이 불가능하고 순서가 없다.

 

E ceiling(E e) 인자로 전달되는 element보다 적은 element를 반환
Comparator<? super E>
comparator()
element들을 set 타입으로 정렬하는 데 사용되는 Comparator 객체를 반환한다.
Iterator<E>
descendingIterator()
element들을 내림차순 형태로 정렬한 후 iterator로 반환
E first() set에 있는 첫 번째 element를 반환
E floor(E e) 인자로 전달된 element보단 큰 element중 가장 큰 element를 반환
E higher(E e) 인자로 전달된 element보단 큰 element중 가장 적은 element를 반환
E last() set에 있는 마지막 element를 반환
SortedSet<E> headSet(E toElement> set에서 인자로 전달된 toElement보다 적은 element들을 정렬한 set으로 반환
SortedSet<E> subSet(E fElement, E tElement) set에서 인자로 전달된 fElement와 tElement 사이의 element를 정렬한 후 set타입으로 반환
SortedSet<E>
tailSet(E fElement)
set에서 fElement보다 크거나 같은 element들을 정렬한 후 set타입으로 반환

 

import java.util.*;

 

public class ex01 {

 

    public static void main(String[] args) {

        TreeSet t_set = new TreeSet();

        t_set.add("홍길동");

        t_set.add("김철수");

        t_set.add("이순신");

        t_set.add("최영희");

        t_set.add("일지매");

 

        Iterator ite = t_set.iterator();

        System.out.print("오름차순 : ");

        while(ite.hasNext())

            System.out.print(ite.next() + " ");

 

        System.out.println();

        Iterator ite1 = t_set.descendingIterator();

        System.out.print("내림차순 : ");

        while(ite1.hasNext())

            System.out.print(ite1.next() + " ");

    }

}

실행 결과]
오름차순 : 김철수 이순신 일지매 최영희 홍길동 
내림차순 : 홍길동 최영희 일지매 이순신 김철수 

 

TreeMap

Map 기능을 상속받는다.

TreeMap은 저장 시 내부적으로 key를 정렬하여 저장한다.

 

K ceilingKey(K key) 인자로 전단된 key보다 크거나 같은 key들 중에 가장 적은 key를 반환
Comparator<? super K>
comparator()
map의 key들을 정렬하기 위해 사용하는 comparator 객체를 반환
NavigableSet<K>
descendingKeySet()
map에 존재하는 key들의 역순으로 된 NavigableSet를 반환
Map.Entry<K, V> firstEntry() map에서 가장 적은 key값을 가지는 key를 반환
K firstKey() map에서 첫 번째 key를 반환
V get(Object key) map에서 인자로 전달된 key를 가지는 value를 반환
SortedMap<K, V>
headMap(K toKey)
map에서 toKey보다 적은 key를 가지는 key들을 정렬한 후에 반환
K kastKey() map에서 마지막 key를 반환
K lowerKey(K key) map에서 인자로 전달된 key보다 적은 key들 중에 가장 큰 key를 반환
V put(K key, V value) map에 key에 대한 value를 저장
SortedMap<K, V>
subMap(K fKey, K tKey)
map에서 fKey와 tKey 사이의 키 값을 가지는 key들을 반환
SortedMap<K, V>
tailMap(K fKey)
map에서 fKey보다 크거나 같은 key들을 반환

import java.util.*;

 

public class ex01 {

 

    public static void main(String[] args) {

        TreeMap t_map = new TreeMap();

        t_map.put("A", "홍길동");

        t_map.put("B", "김철수");

        t_map.put("C", "이순신");

        t_map.put("D", "최영희");

        t_map.put("E", "일지매");

 

        Set set = t_map.keySet();

 

        Iterator ite = set.iterator();

        while(ite.hasNext()) {

            String key= (String)ite.next();

            String value = (String)t_map.get(key);

 

            System.out.println("key : " + key + " -> value : " + value);

        }

        System.out.println(t_map);

    }

}

실행 결과]
key : A -> value : 홍길동
key : B -> value : 김철수
key : C -> value : 이순신
key : D -> value : 최영희
key : E -> value : 일지매
{A=홍길동, B=김철수, C=이순신, D=최영희, E=일지매}

'프로그램언어 > 자바' 카테고리의 다른 글

스레드2  (0) 2020.11.15
스레드1  (1) 2020.11.15
Collection 계열 클래스3  (0) 2020.11.14
Collection 계열 클래스2  (0) 2020.11.14
Collection 계열 클래스1  (0) 2020.11.14