본문 바로가기

Java22

[자바] PriorityQueue (우선순위 큐) Java Platform SE 8 docs.oracle.com PriorityQueue (우선순위 큐) 자료구조의 우선순위 큐를 자바 컬렉션 프레임워크에서 구현한 클래스이다. Queue 인터페이스를 구현하고 있다. 기본 정렬 조건(오름차순)에 의해 정렬되거나 혹은 선언 단계에서 Comparator를 삽입해서 정렬 조건을 설정할 수 있다. 내부적으로 heap의 구조를 사용하기에 enqueue (offer, add), dequeue (remove, poll)에 O(log n)의 시간이 걸린다. contains(object), remove(object)에는 O(n)의 시간이 걸린다. peek(), element(), size() 에는 O(1)의 시간이 걸린다. Queue queue = new PriorityQ.. 2020. 9. 6.
[자바] Generics 제네릭 Lesson: Generics (Updated) (The Java™ Tutorials > Learning the Java Language) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See JDK Release Notes for information about new fe docs.oracle.com Generics 제네릭 클래스 내부에서 사용할 데이터 타입을 외부에서 임의로 명시할 .. 2020. 9. 3.
[자바] ArrayList 깊은 복사 vs 얕은 복사 얕은 복사 '=' 연산자를 사용한 복사 내용이 아닌 Reference 자체를 복사해버린다. 때문에 다른 한 ArrayList의 내용을 변경 시 원래의 ArrayList의 내용도 같이 변경된다. import java.util.*; public class Main { public static void main(String[] args) { ArrayList src1 = new ArrayList(); src1.add(1); src1.add(2); ArrayList dest1 = new ArrayList(); dest1 = src1; //얕은 복사 dest1.add(3); dest1.add(4); System.out.println(src1.toString()); System.out.println(dest1.to.. 2020. 9. 1.
[자바] String 클래스 String API에서 제공하는 문자열 처리 클래스 객체 자료형이지만 기본 자료형처럼 String a = "a"; 와 같은 선언이 가능하다. String 객체는 immutable 해서 한 번 선언된 String은 바뀌지 않는다. 때문에 += 과 같이 변경하는 작업 시엔 메모리를 계속해서 사용하게 된다. (때문에 대신 StringBuilder, StringBuffer를 사용함) 메모리 상에는 char[] 형으로 구현됨 특징 같은 내용의 문자열은 메모리 상에서 한 번만 선언된다. new 키워드를 사용해서 선언할 시 메모리에 새로운 공간을 만들어 내게 되므로 다른 곳에 선언됨. import java.util.*; public class Main { public static void main(String[] a.. 2020. 9. 1.