본문 바로가기
728x90
반응형

arraylist5

PriorityQueue vs Collections.sort: 왜 sort가 더 효율적일까? 이전에 어떤 분이 이야기를 해줬던 내용에 대하여 정리하고자 한다.질문 내용import java.util.*;class Main { // SORT 방식 static List solveArr(Map> map) { List arr = new ArrayList(); for (String key : map.keySet()) { arr.add(new Node(key, map.get(key).size())); } Collections.sort(arr); List result = new ArrayList(); for (Node n : arr) { result.add(n.key); }.. 2026. 4. 27.
Rust Vec의 growth strategy (feat. Java) 오늘은 Rust의 Vec가 가지는 growth strategy에 대하여 알아보겠습니다.growth strategy 이란?초기 용량인 capactiy을 오버한 경우, 증가시키는 방법입니다.capacity이란?현재 컬렉션이 가지고 있는 size가 아닌, 미리 확보한 용량을 의미합니다. 언어별 및 자료구조별로 growth strategy를 하는 방식이 다양합니다. Java의 ArrayList는 1.5배입니다. 예를 들어import java.lang.reflect.Field;import java.util.ArrayList;public class Main { public static void main(String[] args) throws Exception { ArrayList list = ne.. 2026. 3. 26.
int vs Integer int와 Integer의 차이는 원시타입과 객체타입로 보시면 됩니다.그러나 둘다 숫자를 저장한다는 공통점을 가지고 있습니다.'그러면 int대신에 Integer로 전부 통일시키면 괜찮지 않을까?' 라는 생각을 하게 되었고, 이를 기반으로 시간 테스트를 진행해 보았습니다. 가장먼저 각 값들을 n번 선언해보았습니다. int a = 0; long beforeTime = System.currentTimeMillis(); for(int i = 0; i  intInteger시간(ms)14 이번엔 값 선언 후, +1 연산을 수행해 보았습니다.  int a = 0; long beforeTime = System.currentTimeMillis(); for(int i = 0; i  intInteger시간(ms)1.. 2024. 6. 9.
heap vs TreeMap<key, list> treemap());vsPriorityQueueNode(String, String); 과연 어느게 더 메모리를 적게 먹고, 시간을 적게 소요할까요? 코드를 작성하는 와중에 단순 PriorityQueue에 데이터를 넣다보면, java heap memory error가 발생할 거 같다는 생각을 하게 되었습니다. 간단한 이유로는하나의 바구니에 데이터를 모두 담는가 vs 여러 바구니에 나눠서 담는가 에 대하여 생각해보면 당연 후자가 더 효율적이라고 생각했기 때문입니다. 이를 증명하기 위하여 하나의 테스트과정을 거치게 되었습니다. Map의 소스는 이러합니다.Map> map = new TreeMap();for(int i = 0; i ()); for(int j = 0; j  PriorityQueue의 소스는 이러합니.. 2024. 5. 19.
728x90
반응형