목록람다 (3)
kimmgamjja
작업하다가 이 부분에서 에러 발생 list.removeIf(entry -> aId.equals(entry.get("A_ID").toString())); 에러내용은 Local variable 변수명 defined in an enclosing scope must be final or effectively final 찾아보니 람다식과 관련이 있는 에러였다 자바 컴파일러가 파라미터로 사용하는 변수와 로컬 변수를 구분하지 못해서 발생하는 에러라고 한다로컬 변수는 람다식 안에서 바꿀 수 없기 때문에해당 로컬 변수를 class 단에서 선언을 한 뒤 사용하면 된다 @RequestMapping("/test")public class HomeController { String aId = ""; public ..

removeIf()- ArrayList 의 메소드로, 인자로 전달된 조건을 충족하는 list 의 원소들을 삭제- 자바 8부터 가능- 람다식 이용하여 삭제public boolean removeIf(Predicate filter) - Predicate : 인자, 람다 표현식으로 전달가능, 아이템 필터링 조건 - entry 는 list 의 각 맵을 나타낸다 - id 와 entry(list의 각 맵) 에 A_ID 를 비교하여 두 값이 일치할 경우 list 에서 해당 원소를 삭제한다. https://kdhyo98.tistory.com/38 [Java] ArrayList 조건 삭제 'removeIf'서론 arrayList 경우 내가 삭제하고 싶은 애를 삭제하고 싶은 경우 for문을 돌리고, if문을 통해 삭제하는 ..
자바에서 리스트 정렬하는 방법 중에 Stream sorted() 방법이 있다 나는 - 컨트럴러 : 사용자 요청에서 정렬방향( sort ), 정렬 기준 컬럼 ( sortTxt)를 파라미터로 받아옴- 서비스단 : 받은 파라미터를 기반으로 Java Stream API 의 sorted() 메서드 사용하여 리스트 정렬 이러한 형태로 작업했다 * 서비스단 : List> list = new LinkedList();list.addAll(resultList);if(sort.indexOf("asc") > -1){ // 오름차순 if(sortTxt.indexOf("NUMBER_1") > -1 ){ list = list.stream() .sorted((s1, s2) -> Long.valueOf(s1.get(sort..