-
List : 데이터를 관리하기 위한 자료구조, 배열은 중간 부분이 삭제되면 해당 부분을 비워두지만 리스트는
삭제가 일어나면 뒤에 데이터들이 앞으로 당겨진다.
ArrayList : List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 리스트.
인덱스를 이용해 데이터를 가져오는 것이 빈번하다면 ArrayList가 빠름
ArrayList 추가 삭제 시 인덱스가 한 칸씩 뒤로 밀리거나 당겨진다.
LinkedList : 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 리스트.
데이터의 추가/삭제가 빈번하다면 LinkedList가 빠름
LinkedList 추가 삭제 시 앞뒤 링크만 변경하면 된다.
import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(3); list.add(1, 2); list.remove(2); list.sort((a,b) -> b-a); System.out.println(list.get(0)); for (Integer integer : list) { System.out.print(integer + " "); } System.out.println(); System.out.println(); ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(1); arraylist.add(3); arraylist.add(1, 2); System.out.println(arraylist.indexOf(1)); // 해당 데이터 위치 반환 없으면 -1 arraylist.set(2, 4); // add는 추가라면 set은 값 바꿈 Integer[] arr = new Integer[arraylist.size()]; //int는 오류남 아마 형이 안맞아서? arraylist.toArray(arr); System.out.println(Arrays.toString(arr)); for (Integer integer : arraylist) { System.out.print(integer+" "); } System.out.println(); System.out.println(); LinkedList<Integer> linkedlist = new LinkedList<>(); linkedlist.add(1); linkedlist.add(2); linkedlist.add(3); linkedlist.addFirst(0); linkedlist.addLast(4); System.out.println(linkedlist.getFirst()); System.out.println(linkedlist.getLast()); linkedlist.push(6); System.out.println(linkedlist.pop()); linkedlist.push(5); // push 하면 젤뒤로 들어갈줄 알았는데 젤 앞으로 들어감 for (Integer integer : linkedlist) { System.out.print(integer+" "); } } }
실행 결과
728x90'공부 > JAVA' 카테고리의 다른 글
Set, HashSet, LinkedHashSet, TreeSet 사용법 & 간단 사용 예제 (0) 2021.10.31 HashMap, TreeMap 사용법 & 간단 사용 예제 (0) 2021.10.30 Comparable, Comparator 사용하기 JAVA (0) 2021.10.30 순열 조합 주사위 테스트 JAVA (0) 2021.10.30 스택, 큐 사용하기 JAVA (0) 2021.10.30 댓글