ArrayList 와 LinkedList
JAVA2024. 6. 13. 01:20ArrayList 와 LinkedList

자바의 자료구조이며 이 List들은 중복된 값을 가질수 있다. 컬렉션 프레임워크인 List의 인터페이스를 구현한 클래스다. 기본적으로 List 의 기능을 따르지만 각각 다른 기능을써서 다르게 불리는것이다. ArrayList 는  동적으로 배열의 값을 추가, 삭제 가능하며 자동으로 크기를 조절할수있다. LinkedList는 Node 란 것을 사용하여 item에 다음 노드의 주소를 붙여 사용한다. 둘의 차이는 기능으로 인한 성능 차이도 있어 코드로 예제를 첨부하였다.빅오표기법에 따라 어느부분에 뛰어난지 파악후에 적재적소에 써야할거같다.

length 와 size 의 차이
JAVA2024. 6. 13. 00:58length 와 size 의 차이

자바의 초창기에 자료구조는 배열만 있었는데 추후 1.2 버전에서 컬렉션 프레임워크가 추가되었다.length 는 배열의 길이를 가져오고 size는 배열의 갯수를 가져온다둘의 차이는 정적과 동적의 차이라고 알고있다. 배열의 경우 값을 변경 추가 삭제 를 할수없어  길이만 반환하면 되지만컬렉션 같은경우 값의 추가 삭제가 가능하며 값의 갯수를 가지고 와야해서 size를 써서 갯수를 불러온다.

빅오 표기법
JAVA2024. 5. 28. 14:19빅오 표기법

위 그래프가 나타내는건 연산 횟수 와 연산 증가량 이다. 정확한 속도가 아닌 얼마나 빠르고 얼마나 느린지 상대적으로 그래프화 한것  O(1) : 1번의 연산으로 수행한다. ( 예: 배열 인덱스 찾기)배열의 인덱스를 바로 찾을수있는 이유 ?예를들어 int 배열을 만들었을 경우 , int 는 4byte를 갖고있으니 byte를 계산해 해당 인덱스를 바로 찾을수있다 O(log n) : log n 만큼 연산 (예 : 이진 탐색 알고리즘은 입력 크기를 반씩 줄여가며 검색을 수행)  O(n) : n번의 연산을 수행한다 ( 예 : 배열에서 주어진값 같은 값 찾기)인덱스 찾기와 달리 값을 찾는건 해당 배열의 칸마다 확인을 해야한다.  O(nlog n) : n * log n 만큼 연산 (예 :보통 정렬 알고리즘이나 분할 ..

image