JAVA

stream LinkedList filter cannot be cast

질주하는구 2021. 11. 4. 11:02

LinkedList 데이터를 stream filter 를 이용해서 원하는 데이터만 가지고 오는 경우 아래와 같이 형변환을 해줘야 합니다.

 

LinkedList<TelMessVO> clone2 = clone.stream().filter(telMessVO -> telMessVO.getMessText().indexOf("test")!=-1).collect(Collectors.toCollection(LinkedList::new));

 

혹은

 

LinkedList<TelMessVO> clone2 = new LinkedList<TelMessVO>(clone.stream().filter(telMessVO -> telMessVO.getMessText().indexOf("test")!=-1).collect(Collectors.toList()));

 

Collectors.toList() 를 호출하는 경우 결과가 ArrayList로 넘어오기 때문에 해당 데이터를 LinkedList로 

변경 하는 작업이 필요 합니다.

 

for(TelMessVO tempData : clone2) {
   System.out.println(tempData);
}

반응형