낙서장[1]/91. Java: 2개의 글

[Java] 배열을 거꾸로 출력하기

Posted by nkjok
2025. 1. 24. 19:51 낙서장[1]/91. Java
반응형

public class ReverseArray {
    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4, 5 };
        // 배열 요소를 거꾸로 출력하는 코드 작성
        for (int i = array.length - 1; i >= 0; i--) {
            System.out.printf(array[i] + "");
        }

    }

}

출력결과: 54321

배열을 거꾸로 출력하는 코드를 작성하기 위해 for 루프를 사용한다. 여기서 i는 배열의 길이만큼 정의하여 배열의 마지막 인덱스를 가리킬 수 있다. 배열의 길이가 5이므로 i는 처음에 4가 되며, 배열 인덱스 4에서 시작하게 된다(배열의 인덱스는 0부터 시작하기 때문).

루프는 i가 0보다 크거나 같은 동안 계속 반복되며, 각 반복마다 i를 1씩 감소시킨다(i--). 이렇게 함으로써 인덱스 4부터 0까지 차례로 역순으로 순회할 수 있다.

루프 내에서는 array[i]가 현재 인덱스에 해당하는 배열 요소를 가리키며, 이를 출력하여 배열의 요소들을 거꾸로 나열할 수 있다. 이 방식으로 배열의 마지막 요소부터 첫 번째 요소까지 역순으로 출력할 수 있다.

( int[] array = { 1, 2, 3, 4, 5 };에서 array.length는 배열의 길이를 반환한다. 이 배열의 길이는 5다.  배열의 인덱스는 0부터 시작하니까, 마지막 요소의 인덱스는 array.length - 1이 된다. 즉, array.length는 5이고, 마지막 요소의 인덱스는 5 - 1 = 4 이다.)

※ 아래는 배열의 요소들을 역순이 아닌 정상적으로 출력하는 코드이다.


public class ReverseArray {
    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4, 5 };
        for (int i = 0; i < array.length; i++) {
            System.out.printf(array[i] + "");
        }

    }

}

출력결과: 12345

반응형

[JAVA] 람다식(Lambda Expression): 정의, 용도, 사용 방법 및 예시

Posted by nkjok
2025. 1. 24. 18:09 낙서장[1]/91. Java
반응형

Java 람다식(Lambda Expression): 정의, 용도, 사용 방법 및 예시

1. 람다식(Lambda Expression)의 정의

람다식은 익명 함수(Anonymous Function)를 생성하기 위한 표현식이다. 이는 메소드의 구현을 단순하고 간결하게 작성할 수 있도록 도와준다. Java 8부터 도입된 람다식은 함수형 프로그래밍 스타일을 지원하며, 코드의 가독성과 유지보수성을 향상시킨다.

2. 람다식의 용도

  • 간결한 코드: 불필요한 코드(익명 클래스 등)를 줄이고, 간결하게 표현할 수 있다.
  • 함수형 인터페이스: 람다식은 함수형 인터페이스(Single Abstract Method Interface)를 구현할 때 유용하다.
  • 스트림 API: Java 스트림 API와 함께 사용하여 컬렉션 데이터의 필터링, 매핑, 집계 등을 간편하게 처리할 수 있다.

3. 람다식의 사용 방법

람다식의 기본 형태는 (parameters) -> expression 또는 (parameters) -> { statements; }이다.

  • 매개변수가 하나인 경우: parameter -> expression
  • 매개변수가 여러 개인 경우: (parameter1, parameter2) -> expression
  • 코드 블록이 포함된 경우: (parameters) -> { statements; }

4. 람다식 예시

람다식을 사용하여 다양한 상황에서 코드의 간결성을 살펴보자.

4.1. Runnable 인터페이스 구현

익명 클래스를 사용한 Runnable 인터페이스 구현:

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, world!");
    }
};

 

람다식을 사용한 Runnable 인터페이스 구현:

Runnable runnable = () -> System.out.println("Hello, world!");

 

4.2. Comparator 인터페이스 구현

익명 클래스를 사용한 Comparator 인터페이스 구현:

Comparator<String> comparator = new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.compareTo(s2);
    }
};

람다식을 사용한 Comparator 인터페이스 구현:

Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);

 

4.3. 스트림 API와 람다식

스트림 API와 람다식을 사용하여 리스트의 요소를 필터링하고, 매핑하고, 집계하는 예시:

List<String> names = Arrays.asList("John", "Jane", "Tom", "Alice");
List<String> filteredNames = names.stream()
                                  .filter(name -> name.startsWith("J"))
                                  .collect(Collectors.toList());

filteredNames.forEach(System.out::println);

위 예시에서 filter(name -> name.startsWith("J")) 부분이 람다식을 사용한 코드야. 이는 리스트의 각 요소가 "J"로 시작하는지 필터링하는 역할을 한다.

반응형

'낙서장[1] > 91. Java' 카테고리의 다른 글

[Java] 배열을 거꾸로 출력하기  (0) 2025.01.24