카테고리 없음

1215 Java(입력받기, stream 자료형, 프로퍼티)

버스창문 2025. 12. 15. 16:44

입력받기 : Scanner sc = new Scanner(System.in)

저걸 선언하고 sc.next() 등을 이용해서 입력받기 가능

 

stream :

public static void Q4()
    {
        Integer[] arr = new Integer[]{3,6,11,20,21,30};
        Stream<Integer> stream = Arrays.stream(arr);
        var a1 = stream.filter(x -> x%2==0);
        var a2 = a1.map(x -> x + 10);
        var a3 = a2.mapToInt(x -> x).sum();

        stream = Arrays.stream(arr);

        stream.filter(x->x%2==0).forEach(System.out::println);
        stream = Arrays.stream(arr);

        System.out.println();
        stream.filter(x->x%2==0).map(x->x+10).forEach(System.out::println);
        System.out.println(a3);
    }

Q. 그냥 a1 a2 a3를 출력하면 되지 왜 출력하겠다고 저렇게 복잡하게 해놨나요

 

A. 

정신이 나가버린 사상최초 1회용 자료형이라 2번째 쓰려하면 에러남

 

뒤에 filter(조건에 맞는거 추리기)

map(안에 적은대로 내용 바꾸기)

mapToInt(숫자로 바꾸고).sum(총합)

솔직히 이것도 쿼리로 where쓰고,

그 아래것도 솔직히 찾으면 뭐 없지않을거같은데

미쳐버린 1회용 자료형은 왜쓰는걸까

 

 

프로퍼티

public class Player {
    private String name;
    private int level;
    private int exp;

    public Player(String name, int level, int exp)
    {
        this.name = name;
        this.level = level;
        this.exp = exp;
    }



    public String GetName()
    {
        return this.name;
    }
    public void SetName(String name)
    {
        this.name = name;
    }

    public int  GetExp()
    {
        return this.exp;
    }
    public void SetExp(int exp)
    {
        this.exp = exp;
    }

    public int  GetLevel()
    {
        return this.level;
    }
    public void SetLevel(int level)
    {
        this.level = level;
    }
}

getter setter어쩌구 하길래 당연히 관련 함수가 따로 있나보다 했더니 그런건 없고

그냥 자동 프로퍼티 안쓸때 깡으로 만드는거 그대로 한다.