JAVA/복습(10)
-
LinkedList
ArrayList 와 같은 배열 타입의 단점을 보완한 자료구조극복한 단점 = 잠재적 메모리 낭비 데이터를 담는 자료 구조로서연쇄되는 Node 를 사용함. 기본 구조class LinkedList{private Node first;private Node last;} class Node{ Obejct value; Node next; Node previous;} 모양노드 - 노드 - 노드 - 노드 - 노드 - 노드자료 자료 자료 자료 자료 자료 빅오 표기법추가처음 - O(1)중간 - O(n)마지막 - O(1) 조회LinkedList 에는 index가 없음.처음이든, 끝이든 시작점을 잡고 특정 위치가 나올 때까지 이동해야하므로 O(n) 임. ArrayList 와 다르게 처음, 중간, 끝에 ..
2024.07.31 -
ArrayList
기본적인 배열을 필드 멤버로 하는 자료구조. 특징배열 길이가 동적으로 변한다.배열의 한계인 정적 길이를 극복. 자바에서 배열의 길이는 한 번 정해지면 변하지 않는다. 따라서, 배열에 데이터가 많이 채워졌을 때,길이를 늘린 배열을 새로 생성하고 기존 값들을 통째로 복사해 넣는 작업을 통해 이를 가능케 했다. 배열을 다루는 다양한 편의 기능을 제공한다. 빅오 표기법ArrayList 는 자료를 담는 수단으로, 배열을 사용한다.따라서, 기본 성능은 배열과 크게 다르지 않다. 입력 - O(1)조회ㄴ 인덱스를 알 경우 - O(1) ㄴ 인덱스를 모를 경우 - O(n)전체 조회 - O(n)수정 - O(1) 추가처음 - O(n)중간 - O(n)끝 - O(1)삭제 - O(n)처음 - O(n)중간 - O(n)끝 - O(1..
2024.07.31 -
와일드 카드
와일드카드제네릭 타입을 조금 더 편리하게 사용할 수 있게 해주는 특수 문자 클래스 레벨의 매개타입 변수 T 메서드 레벨의 매개타입 변수 T 는 서로 다름. 우선순위도 다름. 메서드 레벨 > 클래스 레벨 와일드 카드는, 사용 편의를 위해 사용한다.이미 만들어진 제네릭 편하게 쓸 때 사용. 정의에는 사용되지 않음.
2024.07.31 -
제네릭
제네릭이란?사용할 타입을 인스턴스 생성 시점에 결정하는 기술 .생성 시점에 클래스 내부에서 사용할 타입을 결정하는 기술이다.범용적으로 사용할 수 있어 Generic 이다. 제네릭이 필요한 이유1. 코드 안정성을 위해2. 코드 재사용성을 위해 Integer[] values;String[] values; 값을 담을 자료구조에 타입이 고정 돼 있다면, 용도는 명확하지만 당연스레 재사용성이 떨어진다.public class ex { private Object[] objectValues; private T[] genericValues; }다형성 활용 Object 를 사용해 다형성을 살려도 되지만 문제가 발생한다.Object 에는 모든 값이 담기므로,1. String, Integer, User 등 다양한 ..
2024.07.30