JAVA/JAVA 프로그래밍 Leejisoo 2018. 5. 16. 00:47
java.util.function패키지가 제공하는 FunctionalInterface정리FunctionalInterface는 JDK8부터 제공해주는 특별한 인터페이스이다. 오직하나의 추상메소드를 갖는 메소드를 FunctionnalInterface라고 말하며 FunctionalInterface를 매개변수로 받는 메소드는 FunctionalInterface의 구현체 대신에 람다식을 전달할 수 있다. FunctionalInterface는 직접 정의해서 사용해도 되지만, 기본적으로 java.util.function 패키지에 정의되어 있는 FunctionalInterface를 정리한다. ■ 기본형 함수형 인터페이스가장 기본이 되는 함수형 인터페이스로, 매개변수가 없거나 하나인 경우. 다른 함수형 인터페이스들도 여..
JAVA/JAVA 프로그래밍 Leejisoo 2018. 5. 14. 22:08
JAVA8 Lambda람다는 @FunctionalInterface의 구현체이다.JAVA7이 나온지 약 10년만에 JAVA8이 나왔다. JAVA8에서의 다양한 변화중 가장큰 변화는 Lambda표현식을 통한 Funtional Programming (함수형 프로그래밍)을 지원한다는 점이다. 다른 스크립트 언어들과는 달리 JAVA는 method타입을 선언할 수 없었다. 그렇다면 JAVA는 어떻게 함수형 프로그래밍을 지원하는 걸까? ■ Lamda 람다란? 람다식(Lambda Expression)은 메소드를 직접 정의하지 않고 하나의 '식(Expression)'으로 표현한 것이다. 일반적인 메소드 블럭은 리턴타입, 메소드명, 파라메터정의 3부분으로 이루어져 있다. 여기서 생략이 가능한 리턴타입, 메소드명을 제거하면..
JAVA/JAVA 프로그래밍 Leejisoo 2018. 5. 7. 21:36
JAVA 7 New Feature 새로운 기능 변경사항 Type Interface 다이아몬드() 지시자 사용제네릭 유형의 인스턴스 생성시 타입 생성이 가능하다. 이전에 new List(); 으로 명시적으로 Type을 선언했던것과 달리 new List();로 타입 생략이 가능하다. (단, 선언이 아니라 생성에서만 가능) 소스코드 String in Switch기존 switch 구문에서 int, enum, char 등 숫자형으로 변환 가능한 primitive 타입에 대해서만 switch구문에서 사용할 수 있었다면, JAVA7 부터는 String Type을 switch로 사용가능하게 되었다. 소스코드 Automatic Resource Management 자동 close DB Connection, File Str..
JAVA/JAVA 프로그래밍 Leejisoo 2018. 4. 28. 02:02
삽입정렬 삽입소트 insertSort 자바구현삽입정렬을 배열로 구현하는 경우 삽입 후 요소의 위치이동에 따른 연산이 복잡하기 때문에 리스트로 구현하는게 훨씬 간단하고 효율도 좋다. 아래는 배열로 구현하는 경우와 리스트로 구현하는 경우 두 가지 소스를 작성해 보았다. 배열로 구현하는 경우1234567891011public static void insertSort(int[] arr) { for(int i = 1; i 0; j--) { if(arr[j-1] > arr[j]) { int temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } }}Colored by Color Scriptercs 리스트로 구현하는 경우(추천)1234567891011121314public ..
JAVA/JAVA 프로그래밍 Leejisoo 2018. 4. 28. 00:57
버블정렬 버블소트 BubleSort 자바구현JAVA 로 구현한 버블정렬 소스배열을 순차탐색하여 i, i+1번째 요소를 비교하여 큰 것을 뒤로 이동위 과정이 1번 처리되는 경우 가장 큰 수가 배열 마지막에 위치 함다음 탐색부터는 마지막요소는 안해도 됨 ( 그래서 내부에 있는 for문은 arr.length - i 까지만 탐색)1234567891011public static void bubleSort(int[] arr) { for(int i = 0; i
JAVA/JAVA 프로그래밍 Leejisoo 2018. 4. 28. 00:18
Comparable, Comparator 자바 정렬JAVA에서 정렬을 처리하는 방법은 배열의 경우 Arrays.sort(arr), 리스트의 경우 Collections.sort(list)를 사용하는 것이 일반적이다. 그런데 이 sort메소드 에서 정렬대상이 되는 arr 또는 list가 Reference Type의 오브젝트인 경우 Comparable 인터페이스를 구현하고 있어야 한다. Primative Type 정렬우선, Primative Type의 배열, 리스트인 경우 별다른 처리 없이 정렬이 가능하다.12345678910public void sortInt() { // Primitive type 정렬 int[] arrInt = new int[]{1,10, 4, 3, 2}; Arrays.sort(arrInt..