Collection을 Array로
Collection명.toArray();
Array를 List로
Arrays.asList(Array명)
new ArrayList<>(Arrays.asList(Array명))
Collectors.toList(Array명)
Arrays.stream(Array명).collect(Collectors.toList())
List를 Set으로
생성자에 넣어주기
Stream 이용 : Set set = Arrays.stream(Array명).collect(Collectors.toSet());
Set.copyOf(list명) : Java 10 이후, 불변 ->값 변경하려고 하면 Exception 발생
Set을 List로
생성자에 넣어주기
List.copyOf(set명) : Java 10 이후, 불변 ->값 변경하려고 하면 Exception 발생
Map을 List로
맵의 키 값만 Set으로 반환
map.keySet()
맵의 밸류 값만 Collection으로 반환
map.values()
IntStream
-> java.util.stream 패키지에 스트림 관련 API
java.util.stream.IntStream
파이썬의 range같은 느낌인가?
IntStream.range(1,5);
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
//mapToInt 사용하면 해당
https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html
https://dev-kani.tistory.com/32
마크다운 진짜 편하다
https://docs.oracle.com/javase/8/docs/api/overview-summary.html
도 좀 더 읽어보기!!
변환 방법이 많은 애들은 그 차이가 뭔지 좀 더 살펴보자 속도나 효율성이나 뭔가 차이가 있을것같긴함
구글의 자바 라이브러리인 Guava도 존재(https://github.com/google/guava)
이걸 찾아보게 된 이유가
Set을 자주 사용하는데 변환이 좀 번거로워서
그런데 중복제거하는 좋은 방법도 알게되었다!
collection명.stream().distinct().collect(Collectors.toList());
저번 프로젝트때 자바스크립트에서 중복 제거하려고 set에 넣었다가 list로 변환하는 작업을 거쳤는데, 이건 자바라 사용 못했겠지만... 자바는 이렇게 해결할 수 있는 방법이 있었다!
그리고 Iterator 자꾸 생소하다고 잘 안 안쓰는 경향이 있는데 잘 써보자!
java 8 이후에 사용 가능한 forEach메소드도 신기했음
Iterable 인터페이스의 메소드
HashSet<String> keywords = new HashSet<>();
keywords.add("Hello");
keywords.add("world");
//이 두개가 동일하게 작동하는듯
for(String str:keywords){
System.out.println(str);
}
keywords.forEach(System.out::println);
//만약 keywords가 맵이라면 이런 식으로 사용 가능
//keywords.forEach((key, value) -> System.out.println(key + " : " + value));
forEach안에는 람다식으로 기술한다고함
Collection을 배열로 변경하면 Object[]으로 반환되어 형변환 필요함!
'BACK-END > Java' 카테고리의 다른 글
[JDBC] Servlet Filter (0) | 2022.02.16 |
---|---|
[JAVA] Sevlet, JSP (1) | 2022.01.16 |
[JAVA] API-JDBC (1) | 2021.12.07 |
[Java] API-Stream(Input & Output) (0) | 2021.11.25 |
[Java] API-Collection과 Map (0) | 2021.11.23 |