6/19 Collection 정리 - ArrayList / LinkedList / Vector

리무 rimu ·2023년 6월 19일
0

Co.

목록 보기
1/43

Collection

  • 컬렉션이란?
    자료구조, 쉽게 말하면 배열

java도 결국 효과적인 데이터를 처리하기 위한 수단 / 다양한 자료구조형을 제공

다양한 자료구조형이 제공되는 이유는?
데이터의 성질에 따라서 데이터를 관리(정리)해야 하는 방식이 다르기 때문

자료 구조형안에서는 객체의 레퍼런스(주소 값)만을 관리

객체데이터는 메모리에 바로 값이 할당 int i = 10;

배열도 배열안에 값이 바로 들어가있는게 아니라 들어가 있는 값의 주소 값을 가리키는 것

List 계열 컬렉션 클래스

자료 구조 중 아마도 가장 많이 사용하고 쉽게 사용할 수 있는 자료구조형
List는 배열과 비슷하지만 배열의 단점을 보완
처음 만들 때 크기를 고정하지 않아도 됨
선언만 하고 크기를 늘리고 줄이고 가능! (가변적)

ArrayList

  • 배열과 비슷, index가 존재(중요)
  • 데이터가 중복되어도 상관 없음
import java.util.ArrayList;

public class ArrayList_ex {


	public static void main(String[] args) {
		ArrayList<String> arrayList = new ArrayList<String>();
		arrayList.add("str1");
		arrayList.add("str2");
		arrayList.add("str3");
		arrayList.add("str4");
		System.out.println(arrayList.toString());

		// index 값이 3인곳의 데이터를 index3에 할당
		String index3 = arrayList.get(3);
		System.out.println("index4 = " + index3);

		// 데이터를 다시 설정
		arrayList.set(2, "str22222");
		System.out.println(arrayList.toString());

		// 크기가 얼마인지
		int size = arrayList.size();
		System.out.println("size:" + size);

		// 해당되는 index 삭제
		arrayList.remove(2);
		System.out.println(arrayList.toString());

		// 모두 삭제
		arrayList.clear();
		System.out.println(arrayList.toString());

		// 주소 값이 없어짐(연결 끊어짐)
		arrayList = null;
		System.out.println(arrayList);

	}
}

LinkedList

  • ArrayList와 비슷 (객체 선언하고 초기화)
  • 약간의 속도의 차이가 있음 (데이터 추가 시엔 ArrayList가 빠르고 , 꺼내오고 검색할땐 LinkedList가 빠름)

    실제론 그닥 차이를 못느낌! 편한거 쓰면 된다고 함!

Vector

  • 가장 오래됨 (Vector → ArrayList, Vector)
  • ArrayList와 비슷하지만 속도가 떨어짐
  • ArrayList보다 멀티스레드 환경에서는 안전해서 많이 쓰임, ArrayList, Vector는 데이터가 엉키는 경우가 있음!
profile
JAVA / SQL / Spring 을 공부하고 있습니다 🐥

0개의 댓글