Java

[Java] 컬렉션(collection) (컨테이너(container))

bornsoon 2025. 4. 29. 23:50

주로 쓰이는 JCF(Java Collection Framework)

Set

  • add("one") : 새로운 자료를 삽입하는 메소드로 성공하면 true, 실패하면 false 반환.
  • size() : 입력된 자료의 개수 반환.
  • contains("four") : "four"가 존재하면 true, 그렇지 않으면 false 반환.
  • remove("four") : "four"라는 자료를 삭제하는 메소드로 삭제에 성공하면 true, 실패하면 false 반환.
  • clear() : 입력된 모든 자료를 삭제.

 

List (ArrayList, LinkedList)

  • add("one") : 새로운 자료를 삽입하는 메소드로 항상 true 반환.
  • add(1, "one") : 위치 1에 "one"이라는 자료를 삽입하는 메소드로 위치 1(두 번째 위치)에 이미 자료가 존재하면 하나씩 뒤로 밀어서 삽입. 자료의 개수를 넘어서는 위치에 새로운 자료를 입력하려고 하면 indexOutofBoundsException이라는 예외 발생.
  • size() : 입력된 자료의 개수 반환.
  • get(2) : 위치 2(세 번째 위치)에 있는 자료 반환.
  • indexOf("one") : "one"이라는 자료의 위치값 반환. 여러 개의 "one"이 입력되어 있는 경우에는 맨 앞에 있는 "one"의 위치 값 반환. 자료가 존재하지 않으면 -1 반환.
  • lastIndexOf("one") : "one"이라는 자료의 맨 마지막 위치 값을 반환. 자료가 존재하지 않으면 -1 반환.
  • set(3, "four") : 위치 3에 있는 자료를 "four"로 바꾸는 메소드로 바꾸려는 위치에 있던 자료 반환.
  • remove(4) : 위치 4에 있는 자료를 삭제하는 메소드로 삭제하려는 위치에 있던 자료 반환.
  • remove("one") : "one"이라는 자료를 찾아서 삭제. 일치하는 자료가 여러 개인 경우에는 맨 앞에 있는 자료만 삭제. 삭제에 성공하면 true, 실패하면 false를 반환.

 

LinkedList (Queue 인터페이스에 정의된 메소드)

  • offer("one") : 큐에 자료를 차례대로 입력.
  • poll() : 가장 먼저 입력된 자료부터 하나씩 반환. 큐가 비어있을 경우 null 반환.

큐 구현

import java.util.*;

public class QueueTest {
	public static void main(String args[]) {
    	Queue <String> queue = new LinkedList <String> ();
        
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        
        String s = queue.poll();
        while(s != null) {
        	System.out.println(s);
        	s = queue.poll();
        }
    }
}

 

LinkedList (스택)

  • push("one") : 스택에 자료 입력.
  • pop() : 스택 맨 뒤에 있는 자료 반환. 스택이 비어있을 경우 NoSuchElementException이라는 예외 발생.

스택 구현

import java.util.*;

public class StackTest {
	public static void main(String args[]) {
    	LinkedList <String> queue = new LinkedList <String> ();
        
        stack.push("one");
        stack.push("two");
        stack.push("three");
        stack.push("four");
        
        try {
        	while (true) {
        		System.out.println(stack.pop());
            }
        } cathc (NoSuchElementException e) {
        	System.out.println("stack is empty");
        }
    }
}

 

Map

  • put("Mon", "Monday") : key값이 "Mon"이고 value값이 "Monday"인 자료를 컬렉션 객체에 입력.
  • get("Tue") : key값이 "Tue"인 자료를 찾아서 그 자료의 value값 반환.
  • size() : 입력된 자료의 개수 반환.
  • containsKey("Wed") : key값이 "Wed"인 자료가 존재하면 true, 그렇지 않으면 false 반환.
  • remove("Fri") : key값이 "Fri"라는 자료를 삭제한 후, 그 자료의 value값 반환.
  • keySet() : 모든 key값을 set으로 반환.

 


Iterator 인터페이스로 탐색하는 방법

  • hasNext()
  • next()
  • get()
  • remove()
List <String> list = new ArrayList <String> ();

Iterator <String> it = list.iterator();

while (it.hasNext())
	System.out.println(it.next());
728x90

'Java' 카테고리의 다른 글

[Java] LinkedHashMap과 HashMap의 차이  (0) 2025.05.01
[Java] 스택 - LinkedList / Deque / Stack  (0) 2025.05.01
[Java] Comparator, CompareTo, thenComparing  (0) 2025.04.28
[Java] DFS  (0) 2025.04.26
[Java] BFS  (0) 2025.04.26