글 작성자: 개발섭

최근에 팀프로젝트나 헤커톤을 나가면서 열심히 자바를 활용할 기회가 많았는데, 간단한 식을 변수명이 길어지면서 코드가 난잡해지기도 하고 좀 더 가독성이 좋거나 혹은 좀 더 중복을 제거할 방법이 없을까 고민하면서 이것저것 많이 찾아냈다. 그래서 정리겸사 적어본다.

 

어떤 기술들이 있으려나..?

내가 오늘 정리할 것들은 총 4가지 정도로 1. Foreach 2. 삼항 연산자 3. Enum 4. lambda이다.

 

1. Foreach

Foreach문은 for문의 여러가지 조건들을 축약해서 줄일 수있다는게 장점입니다. 물론 세부적인 조절이 안되는 게 단점. 

 

for(int i =0; i<n; i++){
.....
}

//이걸 Foreach를 사용하면 이렇게 된다.

int [] array = {1,2,3,4};
for(int index : array){
....
}

 

foreach는 배열을 넣고 배열안에 있는 요소를 꺼내서 쓰는 것입니다. 즉, array속의 요소들을 한개씩 사용하는 것.

그것이 index에 저장되고, 그 인덱스를 사용하면됩니다. 

 

2. 삼항 연산자

삼항 연산자 역시 If else문을 통해서 길어진 코드를 확 줄일 수 있습니다. 

int k = 0;
if (a>b){
	k = 1;
}
else{
	k=2;
}

/// 삼항 연산자로 바꾸면 이렇게 된다.

int k (a>b) ? 1:2; //만족하면 1(앞)이.. 만족하지 못하면 2(뒤)가 나온다. 

쭉 한줄로 사용할 수 있기때문에, 쉽게 사용할 수 있다.

 

3. Enum

이 Enum문은 상수형 클래스로 사용되며, 잘 변화되지 않는 값들을 아예 속성화 시켜서 저장합니다.

public enum Food {
    APPLE("사과"),BANANA("바나나"), GRAPE("포도"),RICE("쌀");

    private String name;

    Food(String name) {
        this.name=name;
    }

    public String getName() {
        return name;
    }
}

Food.APPLE.getName() => "사과"
Food.BANANA => BANANA

 

이건 특정 상수형을 지정할때 표현하기도 몹시 쉽고, 그 안에 메소드를 넣어서 그 값을 튀어 나오게 할 수도 있습니다. 

 

번외- Lambda

람다는 무명함수라고도 부르고, 함수에 이름을 붙히지 않고 사용해서 함수로써 작동하게끔하는 것입니다.

즉, 함수의 생성과정을 간략하게 하여 쉽게 쓸수 있게 합니다.

람다를 활용하기가 조금 까다롭다는 점인데요. 무조건 interface를 사용해야하고 그 무명함수를 정의하기위해서 @FunctionalInterface를 붙혀주고... 기타등등 한번 작동시키기위해서 꽤나 애를 써봤지만, 잘은 안되네요.

람다에 대해서 당장 제가 활용할 수 없으므로, 이것에 대해서 나중에 설명드리도록 하겠습니다.