목록Language (21)
영호
Java에서의 LinkedList List인터페이스를 구현한 collection클래스 중 하나로, Java에서는 doubly LinkedList를 제공해줍니다. ArrayList와 마찬가지로 List인터페이스를 구현했기 때문에 주요 메서드는 거의 비슷합니다. 각 노드들은 참조를 통해 연결되기 때문에 ArrayList보다 데이터 추가/삭제 측면에서 효율적인 수행이 가능합니다. 그러나, 특정 index의 원소에 접근하기 위해선 첫 노드부터 거쳐가야 하기 때문에 특정 원소 탐색에는 ArrayList보다 불리합니다. ArrayList에 대한 글 LinkedList원소 추가 add(element), push(element), addLast(element) : LinkedList뒤에 원소 추가 addFirst(e..

ArrayList란 Java collection의 List인터페이스 구현체입니다. ArrayList는 배열을 이용하지만, 기존 배열은 용량이 다 차면 용량이 더 큰 배열을 만들어 기존 배열 요소들을 복사하는 작업이 필요했기 때문에, 이러한 단점을 극복하고 동적으로 용량이 늘어나는 Java Collection 클래스 중 하나입니다. List인터페이스의 특징 배열 원소들의 순서가 유지되기 때문에, 인덱스를 통한 접근이 가능합니다. 중복 데이터가 허용됩니다. ArrayList선언 ArrayList arrList = new ArrayList(); // Integer타입의 ArrayList ArrayList arrList1 = new ArrayList(20); // 초기용량 20 ArrayList arrList2..
Java String객체 생성 방법 Java에서 String객체를 만드는 방법은 2가지가 있습니다. String literal사용 -> String a = "test"; new 연산자 활용 -> String a = new String("test"); String Constant Pool이란 Java의 Heap메모리에서는 String Constant Pool영역이 있습니다. 이는 String literal로 생성된 값들을 가지고 있습니다. 추후, String literal로 String Constant Pool에 있는 동일한 값으로 String객체가 생성된다면 Heap메모리의 별도 영역을 따로 할당하지 않고 String Constant Pool에 이미 할당되어 있는 해당 값의 주소를 재활용해줍니다. pub..
==연산 Java에서 ==연산은 primitive type에 대해 실제 값을 비교해주는 연산입니다. public static void main(String[] args) { int a = 10; int b = 10; int c = 20; System.out.println(a == b); // 10 == 10 -> true System.out.println(b == c); // 10 == 20 -> false } 그리고 reference type에 대해서는 객체의 주소 값을 비교해주기 때문에, 내부 값이 같다고 하더라고 객체의 주소가 다르다면 false를 리턴해줍니다. public static void main(String[] args) { String a = "test"; String b = "test"..
들어가며 itertools 모듈의 조합, 순열(combinations와 permutations)에 대해 알아보겠습니다. 조합(combinations) 반복 가능한 객체에 대해 n개의 원소를 뽑아줍니다. 뽑힌 n개의 원소들의 순서는 상관하지 않습니다. 무엇을 뽑았는지를 중요하게 여깁니다. ex) [1,2,3]과 [2,3,1]은 같은 경우입니다. combinations객체를 반환합니다. 사용법 combinations(iterable, n) from itertools import combinations combination_data = [1, 2, 3, 4] print(combinations(combination_data,2)) # print(list(combinations(combination_data,2)..
들어가며 이번 글에서는 알고리즘 풀이 중 사용할 수 있는 문자열을 뒤집는 2가지의 방법에 대해 기록해보겠습니다. reverse() s[::-1] 반복문을 이용한 방법은 생략하겠습니다. reverse() 간단하게 리스트를 지정해 reverse()를 호출해주면 됩니다. 문자열에는 reverse()가 동작하지 않기 때문에 list()를 이용해 변환 후 reverse()를 호출해야 합니다. reverse_test = list("hi hello") print(reverse_test) reverse_test.reverse() print(reverse_test) ['h', 'i', ' ', 'h', 'e', 'l', 'l', 'o'] ['o', 'l', 'l', 'e', 'h', ' ', 'i', 'h'] s[::-..
Set이란 Python에서 제공하는 자료형 중 하나입니다. Set의 특징 중복이 허용되지 않는다. 순서 보장이 안된다. Set 선언 set()을 이용해 set자료형을 사용할 수 있습니다. 혹은 {} 중괄호를 이용해 사용 가능합니다. set_list = set([1,2,3,3,4]) print(set_list) # {1, 2, 3, 4} set_tuple = set((1,3,4)) print(set_tuple) # {1, 3, 4} set_string = set("hello python") print(set_string) # {'n', 'o', 'l', 'e', 'y', 'p', 'h', 't', ' '} set_bracket = {1,2,2,3,4,5} print(set_bracket) # {1, 2,..

컬렉션 프레임워크(collection framework)란 여러 데이터를 쉽게 다룰 수 있도록 Java에서 제공해주는 클래스들의 인터페이스입니다. 즉, collection framework를 사용해 stack, queue, set 등 다양한 자료구조를 쉽게 사용할 수 있습니다. 컬렉션 프레임워크(collection framework) 상속 구조 위 사진에서 보면 List, Set은 Collection을 상속받지만 Map은 그렇지 않습니다. List와 Set은 공통된 메소드를 사용하지만 Map은 구조상 달라서 따로 나와있습니다. 사진출처 : https://gangnam-americano.tistory.com/41 Collection interface 메소드 add add()를 통해 객체를 추가할 수 있습니..