본문 바로가기
JAVA

2022-10-21 컬렉션 프레임웍 ArrayList / Vector, 스택과 큐

by HTT 2022. 10. 23.

컬렉션 프레임웍


ArrayList

 


- Vector를 개선한 것으로 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스

 

- List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징이 가진다.

 

- Object배열을 이용해서 데이터를 순차적으로 저장한다.

 

- 첫 번째로 저장한 객체는 Object배열의 0번째에 저장되고 두 번째로 저장하는 객체는 1번째 위치에 저장된다. 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다.

 

 

 

- 사용 방법

ArrayList < 타입 > 이름 = new ArrayList < 타입 >();
ArrayList<Integer> v = new ArrayList<Integer>(); // 생성, int[] arr = new int[10]
	v.add(1);  // 배열요소에 값 저장, arr[0] = 1; 
    System.out.println(v.get(0)); // 배열요소 출력
	System.out.println(v.size()); // 배열 사이즈 출력
import java.util.ArrayList;
public class ArrayTest01 {
	public static void main(String[] args) {
		ArrayList<Integer> v = new ArrayList<Integer>(); // int[] arr = new int[10]
		v.add(1);  //arr[0] = 1;
		System.out.println(v.get(0));
		System.out.println("현재 리스트에 저장된 요소의 갯수 => "+v.size()); // arr.length();
		
		for(int i=1; i<=10; i++) {   // 사이즈가 자동으로 늘어남
			v.add(i);
		}
		System.out.println("현재 벡타에 저장된 요소의 갯수 => "+v.size());
		
		System.out.println("벡터의 저장된 0번 요소 => "+v.get(0));
		int size = v.size();  // 이런식으로 작업해야 함!!! 변수에 담아서
		for(int i=0; i<v.size(); i++) {
			System.out.println(v.get(i));
		}
		
		System.out.println("-----------------향상된 for문(foreach)-------------------");
		// 향상된 for문(foreach)은 collection을 탐색할 때 편리하게 사용
		for(int data : v) { // for문이 돌 때마다 하나씩 꺼내서 쓰겠다는 뜻
			System.out.println(data);
		}
	}

 

 

 

 

 

 


Vector



import java.util.Vector;

public class VectorTest1 {
	public static void main(String[] args) {
		Vector<Integer> v = new Vector<Integer>(); // int[] arr = new int[10]   //<> 안에 어떤 타입이 와도 됨(Objesct이기 때문에)
		//v.add("java");
		v.add(1);  //arr[0] = 1;
		System.out.println("현재 벡타에 저장된 요소의 갯수 => "+v.size()); // arr.length();
		System.out.println("현재 벡터의 용향 => "+v.capacity());
		
		for(int i=1; i<=10; i++) {   // 사이즈가 자동으로 늘어남
			v.add(i);
		}
		System.out.println("현재 벡타에 저장된 요소의 갯수 => "+v.size());
		System.out.println("현재 벡터의 용향 => "+v.capacity());
		
		System.out.println("벡터의 저장된 0번 요소 => "+v.get(0));
		int size = v.size();  // 이런식으로 작업해야 함!!! 변수에 담아서
		for(int i=0; i<v.size(); i++) {
			System.out.println(v.get(i));
		}
		
		System.out.println("-----------------향상된 for문(foreach)-------------------");
		// 향상된 for문(foreach)은 collection을 탐색할 때 편리하게 사용
		for(int data : v) { // for문이 돌 때마다 하나씩 꺼내서 쓰겠다는 뜻
			System.out.println(data);
		}
	}
}

 

 

컬렉션 프레임웍의 핵심 인터페이스

 

1. List : 순서O, 중복O

2. Set : 순서X, 중복X

3. Map : 순서X, 중복 - 키X, 값O

 

컬렉션 - List, Set

Map

 

 

 

 

 

 


스택과 큐

 


* 스택(stack)

: 데이터를 일시적으로 쌓아 놓는 자료구조

 

  후입선출(LIFO : Last In First Out) => 가장 나중에 넣은 데이터를 가장 먼저 꺼냄

- push : 저장

- pop : 추출

- peek : 맨 위에 데이터 보기

 

 

* 큐(que)

: 데이터를 일시적으로 쌓아 놓는 자료구조

 

  선입선출(FIFO : First In First Out) => 가장 먼저 넣은 데이터를 가장 먼저 꺼냄

- offer : 저장

- poll : 추출

댓글