이거 읽으시는분들 참고만 해주세요.
비공개하려다가 혹시 도움되는내용이 있을까싶어 공개로 바꿨습니다
제가 람다를 제대로 공부한게 아니라 그냥 주워들은거 정리차 적고있는거라
오히려 헷갈리게 만들었다면 죄송합니다.
잘못된정보있으면 댓글로 남겨주세요 감사합니다
우선 여기서
스트림 프린트찍으면 객체로 나온다.
map(String::valueOf)를 추가하면 각리스트가 나올까?
안나온다...
joining을 하면?
오 나온다!!
리스트의 각요소가 찍혀나온다.
여기서 Collectors.joining()을 까보면
StringBuilder 생성하고 계속 추가해준후 반환! 굿뜨
String을 추가해주기때문에 앞에서 .map(String::valueOf)로 형변환 시켜줘야만 사용가능하다.
아니 처음에 list에 String을 넣었는데 왜 다시 String으로 맵핑시켜줘야하냐면
list.stream()에서 각 요소를받아온게아니라
스트림으로 받아왔기때문이다.
그럼 이제 forEach를 써볼까?
이게 가능하다.
결과값은 똑같다.
각 요소에 구분을 하고싶으면 map을 한번 더해주면 된다.
아니.. 뒤에 콤마 저거 뭐야..뒤에저거 없애줘야한다..
joining을 쓰면 이런 생각을 안해도된다.
다시 joining으로 돌아가보자.
joining은 각 string사이에 추가해주는것이기때문에 사이마다 ,를 추가해줄수있다.
와우와우와우오아ㅜ오아
코드가 간결하다.
Java8 전에는
for(string s : list) sb.append(s).append(", ");
System.out.println(sb.subString(0,sb.length()-2).toString());
이런식으로 해줘야했다. 뭐 이것도 나쁘진 않지만,
유지보수할때 더 직관적으로 들어오는코드는 위에 람다코드라고 생각한다.
물론 백준에서 제출할때 람다안쓰고 위에코드를 쓴다. 람다쓰니까 시간이 오래나와서 안쓴다..
왜 오래걸리는지모르겟따
joining에서 prefix 와 suffix도 추가해줄 수있다.
사실 joining(CharSequence cs) 은
joining(CharSequence cs , "" , "") 을 리턴한다.
joining에 인자로 뒤에 prefix, suffix 추가해주면 된다.
끝으로 제일 적고싶었던거
이 글을 쓰게한 장본인이다.
1,1,One
2,1,Two
3,1,Three
결과값을 얻고싶었단말이다.. 왜 객체이름반납하니. String 해줬잖아
근데 글적고나서 보니... Node에 toString메소드를 오버라이딩 안했다
해주고나니 잘나온다.
덕분에 정리도하고 카페에서 시간떼우기에도 좋았다ㅋㅋ
공감과 댓글은 제게 큰 힘이 됩니다 !
'Old Posts > Java' 카테고리의 다른 글
Final 과 Immutable 비교 <자바> (0) | 2018.03.19 |
---|---|
StringBuffer -> StringBuilder 어떻게 바뀔까 ? (0) | 2018.02.21 |
String vs StringBuffer vs StringBuilder (0) | 2018.02.09 |
Thread (0) | 2018.01.17 |
Java Grammar ( for better Algorithm ) (0) | 2018.01.14 |