[JAVA][패스트캠퍼스]컬렉션 프레임워크

김주현·2021년 5월 1일
0

컬렉션 프레임 워크란

  • 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리
  • java.util패키지에 구현되어 있음
  • 개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있음
  • Collection 인터페이스와 Map인터페이스로 구성됨

Collection 인터페이스

  • 하나의 객체의 관리를 위해 선언된 인터페이스로 필요한 기본 메서드가 선언되어 있음
  • 하위에 List,Set인터페이스가 있음

Map 인터페이스

  • 쌍으로 이루어진 객체를 관리하는데 필요한 여러 메서드가 선언되어 있음
  • Map을 사용하는 객체는 key-value쌍으로 되어 있고 key는 중복될 수 없음

List 인터페이스

  • Collection 하위 인터페이스
  • 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스
  • 배열의 기능을 구현하기 위한 메서드가 선언됨
  • ArrayList,Vector,LinkedList

ArrayList와 Vector

  • 객체 배열 클래스
  • Vector는 자바2부터 제공된 클래스
  • 일반적으로 ArrayList를 더 많이 사용
  • Vector는 멀티 쓰레드 프로그램에서 동기화를 지원
  • 동기화(synchronization) : 두개의 쓰레드가 동시에 하나의 리소스에 접근할 때를 맞추어서 데이터의 오류가 방지하지 않도록 함
  • capacity와 size는 다른 의미임
    -capacity는 배열의 용량, size는 엘리먼트안에 몇개의 요소가 있는지

ArrayList와 LinkedList

  • 둘다 자료의 순차적 구조를 구현한 클래스
  • ArrayList는 배열을 구현한 클래스로 논리적 순서와 물리적 순서가 동일함
  • LinkedList는 논리적으로 순차적인 구조지만, 물리적으로는 순차적이지 않을 수 있음
  • LinkedList구조
  • LinkedList에서 자료의 추가와 삭제
package collection;

import java.util.LinkedList;

public class LinkedListTest {

	public static void main(String[] args) {
		//LinkedList는 가장 많은 메서드를 가진 클래스 중 하나
		//LinkedList는 get과 다르게 객체를 순서에 따라 관리함
	
		LinkedList<String> myList=new LinkedList<String>();
		
		myList.add("A");
		myList.add("B");
		myList.add("C");
		
		System.out.println(myList);
		myList.add(1,"D");
		//1번째에 D삽입
		System.out.println(myList);
		myList.removeLast();
		//리스트의 마지막 문자삭제
		System.out.println(myList);
		
		//get은 중복을 허용하고 객체를 순서에 상관없이 관리함
		for(int i=0;i<myList.size();i++) {
			String s=myList.get(i);
			System.out.println(s);
		}
	}



}

0개의 댓글

관련 채용 정보