[Java] OOP_인터페이스(Interface)-ArrayList, LinkedList

인터페이스(Interface)

지난 포스팅 : OOP_인터페이스

ArrayList와 LinkedList

자바의 List인터페이스를 상속받은 클래스 중 하나


ArrayList

  • 배열을 사용해 List 구현한 클래스
  • 일반 배열과 동일하게 연속된 메모리 공간을 사용, 인덱스 0부터 시작한다.
  • 배열과 ArrayList의 차이점 : 배열은 크기가 고정되어있지만 ArrayList는 크기가 가변적이다.
  • 현재 가용량(Capacity) 이상 저장하려 할 때 더 큰 메모리를 새롭게 할당한다.

ArrayList 생성

자바에서 ArrayList를 생성하면 위쪽에 구문이 생긴다.

import java.util.ArrayList;
//PC 타입 객체 n개, BC 타입 객체 n개 만들기 - 하나가 아니라 여러개지만 n개기 때문에 배열(갯수 정해져있음)이 적합하지 않다 
ArrayList<Contact> contacts = new ArrayList<Contact>(); //new ArrayList<>안 생략 가능  

ArrayList<Contact> contacts = new ArrayList<>(); //Contact 배열에 서로 다른 애들을 넣을 수 있다, 상속이니까. 
contacts.add(new PersonalContact("My Friends", null, null, null));
contacts.add(new BizContact("My Friends", null, null, null, null));
		
for(Contact c2 : contacts) {
	System.out.println(c2.toString());
} 

LinkedList

  • 각각의 데이터가 노드(Node)로 구성되어 연결되는 구조
  • 장점은 데이터를 추가하거나 삭제하는 것이 원활하다는 것이다.

LinkedList 생성

import java.util.LinkedList;
LinkedList<Contact> contacts = new LinkedList<>(); 

ArrayList, LinkedList 차이, 언제 사용할까?

ArrayList는 검색이 많은 경우 사용하고, LinkedList는 데이터의 추가, 삭제가 잦은 경우 사용한다.

좋은 웹페이지 즐겨찾기