Java
-
[Camel][Java] Lambda Expression - 람다식Java/개념 정리 2020. 7. 16. 21:43
1. Lambda Expression (람다식)이란? 람다식은 간단하게 설명하자면 함수를 변수처럼 사용하는 것입니다. 다른 말로는 식별자 없이 실행가능한 함수라고도 설명할 수 있습니다. 람다식의 경우에는 Java 8에서부터 지원하기 시작했습니다. JDK 8버전 이전에는 메소드 그 자체를 변수로 사용할 수 없었지만, JDK 8버전부터는 람다식을 사용해 함수를 변수처럼 사용할 수 있게된 것입니다. 이러한 람다식을 사용하면 이전보다 문법적으로 간결하게 표현할 수 있습니다. 2. 람다식의 왜 사용하는가? 결론부터 말하자면, 람다식의 주된 사용이유는 인터페이스가 가지고 있는 메소드를 간편하게 구현해서 사용하는 것 때문입니다. 람다식을 사용하기 위해서는 구현하기 위한 Functional 인터페이스(@Function..
-
[Camel][Java] 알고리즘 문제해결 - 가장 큰 수Java/알고리즘 2020. 7. 14. 22:05
문제 내용 설명에 앞서 문제는 프로그래머스에서 풀이한 문제임을 알립니다. 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 ..
-
[Camel][Java] 알고리즘 문제 해결 - 정렬(Sort) / copyOfRangeJava/알고리즘 2020. 7. 8. 19:44
문제 내용 설명에 앞서 문제는 프로그래머스에서 풀이한 문제임을 알립니다. 문제 내용 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하고자 합니다. 1차원 배열 array와 [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 예시 array = {1, 5, 2, 6, 3, 7, 4}, commends ={ {2,5,3}, {4,4,1} ,{1,7,3} }이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2..
-
[Camel][Java] 배열 중복 요소 카운팅 (HashMap Value 정렬)Java/알고리즘 2020. 7. 8. 00:00
1. HashMap의 값(Value)을 기준으로한 정렬 Java 에서 HashMap에 저장한 데이터를 값(Value)으로 정렬하는 방법을 알아보겠습니다. import java.util.Map; import java.util.HashMap; import java.util.Collections; import java.util.List; import java.util.Comparator; import java.util.ArrayList; public class Main{ public static void main(String[] args){ Map map = new HashMap(); map.put(1, 100); map.put(2, 10); map.put(3, 1000); map.put(4, 10000); ..
-
[Camel][Java] RandomAccessFile & File 클래스Java/개념 정리 2020. 3. 5. 17:52
이전 포스팅에서 다뤘던 입출력 스트림은 순차적인 입출력에 한하여 사용가능한 스트림이었습니다. 2020/03/03 - [Java] - [Camel][Java] InputStream & OutputStream (파일 입출력) 2020/03/04 - [Java] - [Camel][Java] 문자 스트림(Stream) / FileReader, FileWriter, BufferedReader, BufferedWriter 2020/03/05 - [Java] - [Camel][Java] ObjectInputStream & ObjectOutputStream RandomAccessFile 클래스 RandomAccessFile 클래스는 순차적이지 않은 형태의 접근이 필요한 경우 사용하게됩니다. 파일의 중간이나 끝에 저장된..
-
[Camel][Java] ObjectInputStream & ObjectOutputStreamJava/개념 정리 2020. 3. 5. 14:44
ObjectInputStream & ObjectOutputStream ObjectInputStream과 ObjectOutputStream은 인스턴스의 입출력에 사용되는 클래스입니다. 이 클래스들은 사실상 Byte 스트림에 속하지만 오브젝트 스트림으로 구분하여 설명하는 경우가 많습니다. 사용방법은 필터스트림과 매우 흡사하지만 필터스트림으로 구분하지는 않습니다. 그 이유는 필터 스트림이 상속하는 클래스를 상속하지 않기 때문입니다. 인스턴스의 저장과 복원에는 ObjectOutputStream과 ObjectInputStream에 정의되어 있는 아래의 메소드가 사용됩니다. // writeObject 메소드는 ObjectOutputStream 에 정의 되어있다. public final void writeObject..
-
[Camel][Java] 문자 스트림(Stream) / FileReader, FileWriter, BufferedReader, BufferedWriterJava/개념 정리 2020. 3. 4. 21:40
문자 스트림 이전 포스팅에서 다뤘던 입출력 스트림은 Byte 단위로 입출력이 이루어지는 Byte 스트림이었습니다. 하지만 Byte 단위로만 입출력이 가능한 것이 아닙니다. 문자 단위로 입출력이 이루어지는 문자 스트림이 존재하기 때문입니다. Java는 유니코드 기반으로 문자를 인코딩합니다. 하지만 우리가 흔히 일상에서 사용하는 Windows나 Linux의 경우에는 Java와 다른 표준으로 문자를 인코딩합니다. 그렇다면 Windows 운영체제에서 실행되는 Java 프로그램에서 파일에 문자 데이터를 저장하고, 이것을 Windows 응용프로그램으로 읽어내려면 어떤 기준으로 인코딩해 저장해야할까? 정답은 'Windows 기준으로 인코딩해야한다'입니다. 더 나아가, Windows가 아닌 다른 운영체제에서는 또 다른..
-
[Camel][Java] InputStream & OutputStream (파일 입출력)Java/개념 정리 2020. 3. 3. 20:09
파일 입출력 in Java Java에서는 입출력 대상에 상관없이 입출력의 진행방식이 동일하도록 별로의 I/O 모델이 정의되어 있습니다. 이는 Java의 I/O 모델을 기반으로 데이터를 입출력 한다면 입출력 대상에 상관없이 동일한 형태로 데이터를 입출력할 수 있다는 것입니다. 하지만 이것은 입출력의 기본방식이 동일하다는 뜻일뿐, 입출력 대상에 따라 사용해야하는 클래스 및 메소드는 다를 수 있습니다. Stream의 이해 I/O 모델을 이해하기 위해서는 Stream이라는 것을 이해해야합니다. Stream이란 데이터의 흐름을 말하며 데이터의 흐름을 형성하는 통로를 의미하기도 합니다. Java에서는 각종 I/O 장치의 데이터 이동에 사용되는 인스턴스를 의미하는 용도로 사용됩니다. Stream은 크게 프로그램으로 ..