list 2

Java의 UnsupportedOperationException (feat array, List)

개발을 하던 와중에 Arrays의 asList를 이용해서 리스트를 선언과 초기화를 해준 뒤 다음 이후에 리스트를 추가하거나 삭제하려고 했더니 UnsupportedOperationException이 발생했다. 에러 메세지만 보면 내가 작성한 코드가 지원할 수 없다는 내용인데, 이유를 찾아보니 Arrays.asList는 배열을 리스트로 그냥 덮어씌운상태(래핑)로 변경되고, 변경된 상태의 데이터들은 배열을 이용하고 있고 asList자체가 타겟으로 들어온 배열의 길이를 고정된 값으로 리턴하기 때문에, add나 remove를 사용할 수 없다는 것 같다. 다만 set을 이용하면 데이터 교체는 가능하다. 결론적으로 asList를 이용해서 내가 원하는 결과(List로 리턴받아 add, remove)를 수행하려면 다음과..

JAVA 2021.12.08

Stream.filter()을 이용해 하나의 원소만 리턴받기

오늘은 stream클래스의 filter 메소드를 사용하고 있던중, 필터링 되어 리턴되는 결과값이 한 개만 되도록 하고싶을떄 사용할 수 있는 방법을 정리하려고 한다. 본 내용은 글로써 서술하는 것보다 코드를 보며 정리하는게 좋을것같아 바로 코드를 보려고한다. 코드는 다음과같다. 123456789101112131415161718192021222324252627282930/* Member이라는 테이블(Entity)가 존재하고 모든 Member의 리스트중에서 유니크한 값을 이용해 필터링하는 상황을 가정 class 중략..*/ public testMethod(Long id) { List members = memberRepo.findAll(); Member resultMember = new Member(); // ..

JAVA 2021.01.26