Back-End/JAVA

    Stream() 의 특징과 기본적인 내용

    자바의 Stream() API 다양한 데이터(컬렉션 - List,Set,Map 등, 배열 등) 소스를 표준화된 방법으로 다루기 위해서 사용합니다. Stream Collection.stream(); stream() 메소드로 간단하게 컬렉션을 stream으로 만들 수가 있다. 기본적인 형식이 있는데 스트림 파이프라인이라고 한다. 1. 스트림을 생성한다. 2. 중간 연산을 한다. 3. 최종 연산을 한다. 여기서 중간연산은 제한이 없습니다. 최종 연산은 1번만 가능합니다. 최종 연산 후에는 스트림 파이프라인이 닫힌다. stream.limit(5).sorted.forEach(System.out::println); 스트림을 활용하여 간단하게 5개로 자르고 정렬한 뒤 출력한 것이다. 스트림의 특징으로는 1. 데이터 ..

    Predicate<T> interface

    docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Predicate.html Predicate (Java SE 11 & JDK 11 ) docs.oracle.com 자바에서 제공되는 함수형 인터페이스 중에 하나로 boolean 값을 반환합니다. 추상 메소드로 제공되는 test()와 기본 메소드로 제공되는 and(),or(),negate() 가 있으며 스태틱 메소드로 제공되는 isEqual(), not() 가 있습니다. Predicate isOdd = (s) -> (s % 2) == 1; Predicate isEven = Predicate.not(isOdd); //Predicate isEven = isOdd.negate(); S..

    자바8 Function<T,R> interface

    오늘 공부할 내용은 함수형 인터페이스입니다. 자바에서 기본적으로 제공하는 라이브러리인 Function interface에 대해 알아보도록 하겠습니다. docs.oracle.com/javase/8/docs/api/java/util/function/Function.html Function (Java Platform SE 8 ) docs.oracle.com java.util.function 로 제공되는 인터페이스이며, import 하여 사용합니다. Function T - 함수에 대한 입력 유형이며 R - 함수 결과의 유형입니다. 함수형 인터페이스이므로 람다식 또는 메서드 참조에 대한 할당 대상으로 사용 가능하다고 합니다. 이 함수형 인터페이스에는 4개의 메소드가 존재합니다. 1개의 추상 메소드 apply()와..

    자바8 - 인터페이스의 기본 메소드와 스태틱 메소드

    public interface Human{ void hName(); void hAge(); } hName()과 hAge()라는 추상메소드를 두개를 가지고 있는 Human 인터페이스가 있습니다. public class TestHuman implements Human { @Override public void hName(){ System.out.println("Kim"); }; } 그 interface를 상속하는 class TestHuman이 있습니다. 여기서 이 class는 에러가 납니다. 그 이유는 추상메소드 두개를 모두 override 하지 않았기 때문입니다. 여기서 override를 하지않아도 에러가 나지않으며 interface를 상속받은 클래스들이 모두 기본적으로 사용할 수 있도록 하는 것을 기본 ..

    자바 indexOf() - 문자열 중 해당문자 위치 찾기

    indexOf() - 특정 문자나 문자열에서 해당하는 문자의 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다. indexOf(String s) indexOf(int i) indexOf(String s, int startindex) indexOf(int i, int startindex) lastIndexOf() - 특정 문자나 문자열에서 해당하는 문자를 뒤에서 부터 찾아 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다. lastIndexOf(String s) lastIndexOf(int i) lastIndexOf(String s, int startindex) lastIndexOf(int i, int startindex) indexOf() 예제를 먼저보면 c..

    자바 charAt(int i) -'0' 에 대해서 문자를 정수형으로?

    charAt은 자바에 문자열에 index값을 통해 문자를 읽어오는 방법으로 String str = "코크입니다"; 라는 문자열이 있으면, str.charAt(0); // 코 str.charAt(1); // 크 str.charAt(2); // 입 str.charAt(3); // 니 str.charAt(4); // 다 이렇게 문자를 가져올 수 있습니다. 그럼 이 문자열을 숫자로 가져와 보겠습니다. String str = "12345"; str.charAt(0); 무엇이 출력될까요? 네 당연히 1이 출력이 됩니다. 그럼 이 1은 문자의 1 일까요? 아니면 숫자 1일까요? 네 이것도 당연히 문자 '1' 입니다. 그런데 우리는 이 문자 '1'을 숫자 1로 바꾸고 싶습니다. 그럼 어떻게 해야 할까요? 이 문자 '1..

    자바8 - 함수형 인터페이스와 람다 표현식에 대해서 간단하게

    함수형 인터페이스는 추상메소드가 1개 일 경우를 함수형 인터페이스라고 합니다. public interface Test { void go(); } 이렇게 Test라는 인터페이스에 추상메소드가 한개이니 이 인터페이스는 함수형 인터페이스 입니다. public interface Test { void go(); void gogo(); } 그럼 이렇게 추상 메소드가 두개 일 경우는 함수형 인터페이스 일까요??? 아닙니다. 추상메소드가 두개 이므로 이 인터페이스는 함수형 인터페이스가 아닙니다. * 대신 추상 메소드 말고 static 메소드와 default 메소드가 있습니다. 다른 형태를 포함하지만 추상 메소드가 한개인 인터페이스는 함수형 인터페이스 입니다. public interface Test { void go()..

    == 와 equals 차이

    JAVA에서는 만약 으로 만들게 되면 num1 == num2 라고 했을 때 true 이다. 그 이유는 자바에서 int num1 = 1 으로 변수를 선언하면 이런 메모리에 1 이런 식으로 한 곳에 1이라는 숫자가 들어가게 된다. 근데 num1 = 1 이라는 값을 가르키는 상태에서 num2 = 1이라 선언하면 1 1 이렇게 1이 두개 만들어지는것이 아니고 1 num2는 이미 만들어진 1을 가르키게 된다 이때 num1 == num2 를 하면 같은 곳을 가르키고 있다. 해서 true가 된다. 자바에서는 이런식으로 만들어도 같은 문자열 "kim" 이 된다. 그렇지만 new String(""); 을 통해 객체 문자열을 만들게 되면 "kim" -> name1이 가르키는 "kim" -> name2가 가르키는 새로운 영..