반응형

Language/Java

    [Java] ArrayList, LinkedList 차이

    [Java] ArrayList, LinkedList 차이

    #1 ArrayList와 LinkedList Java에서 기본형(int, boolean, String, char) 또는 인스턴스를 리스트로 저장하는데는 보통 배열을 사용한다. 하지만 배열은 선언시에 크기를 정해줘야하므로, 동적으로 요소의 추가나 삭제 등이 불가능하다는데 그 단점이 있다. 만약 배열의 원소를 추가하거나 삭제하려면, 직접 새로운 배열을 선언해주어서 카피하는 식으로 사용해야한다. 지속적으로 데이터를 변경해야되는 알고리즘 문제나, 어떤 프로그램의 구현에서 이는 꽤나 큰 불편함으로 다가온다. 이러한 불편함을 해소시켜주는 것이 List 인터페이스를 상속하여 구현된 ArrayList와 LinkedList 클래스이다. 이 둘은 모두 Collections 객체의 일종이다. 이 두 가지 리스트는 동적으로 ..

    [Java] BufferedWriter Int형 출력 / BufferedWriter 정수 출력

    [Java] BufferedWriter Int형 출력 / BufferedWriter 정수 출력

    더보기 BufferedWriter 사용시 정수를 그대로 출력하려고 할 경우 다음과 같은 오류가 발생합니다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(System.out)); int[] array = {1,2,3,4,5,6,7,8,9}; buf.write("int형 그대로 출력: "); for(int i=0; i

    [Java] 문자열(String, StringBuffer, StringBuilder) / 자바 문자열 타입

    [Java] 문자열(String, StringBuffer, StringBuilder) / 자바 문자열 타입

    👀 문자열 클래스 ( String / StringBuffer / StringBuilder )👀 1.String : final형으로서 각 char를 수정하거나, 접근할 수 없음. 2.StringBuffer : thread-safe 하고, 수정가능한 char 배열. Multi-thread에 사용. 3.StringBuilder : thread-safe 하지 않고, 수정 가능한 char 배열. Single-thread에 사용 Java에는 문자열을 다루는 방식이 굉장히 많습니다. String이 가장 흔하게 사용되는 방식이고, StringBuffer와 StringBuilder 또한 문자열을 다룰 수 있는 클래스입니다. 이 세 가지 클래스는 아래와 같은 차이점을 가지고 있습니다. String vs StringBuff..

    [Java] JAVA 절댓값 구하는 함수 Math.abs()

    [Java] JAVA 절댓값 구하는 함수 Math.abs()

    Java에서 자체 라이브러리인 Math의 abs() 함수를 사용하면 편하게 절댓값을 구할 수 있습니다. public static void main(String[] args){ int a = 100; int b = -100; System.out.println("a의 절댓값 : " + Math.abs(a)); System.out.println("b의 절댓값 : " + Math.abs(b)); if(Math.abs(a) == Math.abs(b)){ System.out.println("a와 b의 절댓값은 같습니다!"); } } /* a의 절댓값 : 100 b의 절댓값 : 100 a와 b의 절댓값은 같습니다! */ Math.abs()는 4가지의 숫자 타입(int, long, float, double)에 모두 사..

    [Java] Java 배열 깊은 복사 & 얕은 복사 / Deep Copy & Shallow Copy / Java 객체 배열 복사

    [Java] Java 배열 깊은 복사 & 얕은 복사 / Deep Copy & Shallow Copy / Java 객체 배열 복사

    👀 깊은 복사 / 얕은 복사 👀 1.얕은 복사 : 복사한 배열이 원래 배열의 '주솟값'을 가져옴 2.깊은 복사 : 복사한 배열이 원래 배열을 '그대로' 가져옴 Java의 배열 복사에는 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)가 있습니다. 얕은 복사는 단순한 변수 선언을 통한 복사의 형태로, 복사하려는 배열의 주솟값을 가져오게됩니다. 그래서 복사한 배열을 수정하게 될 경우, 원래 배열 또한 수정되는 결과를 얻게 됩니다. 깊은 복사는 원래 배열을 그대로 가져와 새 배열에 덮어쓰기 하는 것입니다. 따라서 복사한 배열을 수정하더라도, 원래 배열이 수정되는일은 없습니다. 얕은 복사는 차원 상관없이 단순 변수 선언을 통해 사용할 수 있습니다. 반면 깊은 복사는 1차원의 경우 array.c..

반응형