java8
-
[JAVA8] group byBackend/JAVA&JAVA8 2022. 5. 5. 14:07
오늘은 마치 sql문의 group by 문처럼 자신이 원하는 데이터들을 묶어주어서 Collections로 반환하는 groupBy 메소드에 대해서 알아보겠습니다. 어렵게 생각하실 필요가 없습니다. 백문이 불여일타라고 하죠? 코드로 직접 알아보겠습니다. 1. 재료가 될 class를 준비합니다. static class Item { private String name; private int qty; private BigDecimal price; Item(String name, int qty, BigDecimal price) { this.name = name; this.qty = qty; this.price = price; } public String getName() { return name; } public ..
-
[JAVA8] Map to List, List to Map-2 / Map을 리스트로, 리스트를 맵으로-2Backend/JAVA&JAVA8 2022. 5. 5. 14:05
이번 시간에는 저번 시간에 이어서 map을 list로 변환하는 코드들을 살펴보도록 하겠습니다. 번 포스팅은 이론적인 설명이 중심이 아닌 실무 중심의 포스팅이므로 바로 본론으로 들어가도록 하겠습니다. 우선 계속해서 가지고 놀 TestMap을 하나 만들어줍니다. 아래와 같이 만들어주시면 됩니다. private static Map getTestHashMap() { Map map = new HashMap(); map.put(1, "first_phone"); map.put(2, "second_phone"); map.put(3, "third_phone"); map.put(4, "fourth_phone"); return map; } Integer와 String으로 이루어진 Map을 하나 만들어주시고 value는 마음..
-
[JAVA8] Map to List, List to Map-1 / Map을 리스트로, 리스트를 맵으로-1Backend/JAVA&JAVA8 2022. 5. 5. 14:03
사진 설명을 입력하세요. 오늘은 어떠한 이론적인 내용보다는 평소에 실무에서 많이 사용하는 List를 Map으로, Map을 List로 변환하는 과정에 대해서 간단하게 알아보려고 합니다. 보통 서버 개발을 Spring으로 하시는 분들은 쿼리에 대한결과를 mybatis로 받아서 Java에서 이런저런 처리를 해서 Client요청에 대한 응답값을 Client에 내려주게됩니다. 그렇다면 Client에서 Server에서 내려준 결과를 받아서 화면에 뿌려주게 되구요. 대부분의 환경이, 그렇게 뿌려주는 곳이 웹 혹은 앱이라고 생각합니다. 백문이 불여 일타라고 하죠? 우선 강아지 클래스를 하나 만들어 보겠습니다. static class Puppy { private int id; private String name; Pup..
-
[JAVA8] What is different things between Map and Filter in Java8?-2 / Map과 Filter 그리고 차이점에 대하여-2Backend/JAVA&JAVA8 2022. 5. 5. 14:00
저번 시간에 자료구조에서 유용하게 사용할 수 있는 filter메소드를 살펴보았는데요. map은 어떨까요? map은 기존 데이터에서 수정하여 적용시킵니다. 원하는 수정사항을 반영하여 기존의 Map을 통째로 반환시키는 것이죠. 백문이 불여일타라고 하죠? 코드로 확인해보겠습니다. 이번에는 아래와 같이 알파벳 리스트를 만들어줍니다. List alphabetList = Arrays.asList("a","b","c","d"); 그런데 갑자기, alphabetList 속에 있는 alphabet들을 전부 대문자로 바꾸고 싶은 생각이 들었습니다. 이전에 배운 filter로는 조건을 만족하는 값을 반환하는 코드밖에는 짤 수가 없습니다. 저는 지금 자료구조에 해당하는 값을 통째로 수정하고 통째로 반환하고 싶습니다....! ..
-
[JAVA8] What is different things between Map and Filter in Java8?-1 / Map과 Filter 그리고 차이점에 대하여-1Backend/JAVA&JAVA8 2022. 5. 5. 13:58
안녕하세요. 오늘은 Map과 Filter 그리고 그 차이점에 대해서 알아보는 시간을 가지려 합니다. 실제로 Client 측에 Data들을 조립하여 내려줄때에 혹은 Database로 부터 Data들을 가져와서 어딘가에 담을때, 만약 List로만 담았다면 그 List를 변경할 생각을 하실텐데요. ArrayList, HashMap과 같은 여러 데이터들을 담고있는 자료들로 부터, 특정한 조건을 주어서 원하는 무언가를 반환 하고 싶을 때에 .map() 메소드와 .filter() 메소드를 사용합니다. 저번 시간에 Optional을 살펴보며 스리슬쩍(?) 보았었죠. 바로 코드로 넘어가는게 좋을 듯 합니다. 백문이 불여일타라고 하죠? 아래와 같이 Person Class가 있다고 가정하겠습니다. static class ..
-
[JAVA8] About Optional-2 / Optional에 대하여-2Backend/JAVA&JAVA8 2022. 5. 5. 13:51
Stream에서도 잠깐 다루었고, 차후 filter와 map에 대해서 다루게 되겠지만 Java에서 자료구조를 다루는 방식이 여러가지 입니다. Optional은 Null을 다루는 기능인데에도 조건부로 출력할 가능성이 있을까요? 넵 있습니다. 모든 자료가 전부 자료구조에 담기지 않잖아요? 예를 들어 Java의 모든 자료가 List someList 이런식으로 List에만 담기지 않듯 String, Integer에만 담기는 자료들도 있을 건데 그 자료형들도 모두 Optional로 처리할 일이 생기실 겁니다. 하나의 자료도 함수형언어 답게 filter를 걸어서 출력하고 / 안하고를 결정할 수 있습니다. 백문이 불여일타라고 아래 코드 살펴보시죠. 1.Optional + Filter Optional filterGen..
-
[JAVA8] About Optional-1 / Optional에 대하여-1Backend/JAVA&JAVA8 2022. 5. 5. 13:46
안녕하세요. 오늘은 Java8에서 빠질 수 없는 개념, Null 을 다루는 새로운 방법인 Optional에 대해서 다루어 볼까 해요. Optional은 Java 진영에서 꺼낸 비장의 무기 같은 느낌이 듭니다. Null에 대한 지속적인 불만을 토론한 개발자들의 의견이 겨우 반영된 느낌이랄까요? 정작 저는 Java8이 나왔을 때 당시에 제대로 사용하기는커녕 다른 개발을 하느라 정신없었죠. Java로 개발을 하다가 자주 마주치는 Exception 중 하나인 NullPointerException을 마주치면... 또야..? 출처 입력 하는 생각이 드실 거예요. 그리고 그것을 방지하기 위해 아래와 같은 코드를 많이 작성하셨을 거라고 생각해요. if(version != null) { if(operationCode !..
-
[JAVA8] About Stream 스트림에 대하여Backend/JAVA&JAVA8 2022. 5. 5. 13:37
안녕하세요. 오늘은 JAVA로 개발을 하면서 적잖이 충격을 받았던 JAVA8에 대해서 이야기해보고, 또 어떻게 사용하고 있는지 기능 별로 정리하여 제가 추후에 저의 블로그를 보고 참고하여 사용할 수 있게 끔 정리하는 포스팅을 진행하려 합니다. 저는 정확히는 람다라는 개념을 Javascript에서 처음 접하게 되었습니다. 이때 저는 처음으로 제 머릿속에서, 본격적으로 함수형 프로그래밍에 대한 개념이 제 머릿속에서 생겨났다고 봅니다. 굉장히 낯설었던 기억이 납니다. JAVA8 이전에는 어떠한 자료구조에 대해서 순환하며 데이터를 뽑으려면 iterator와 함께 while 문을 사용하거나 for 문을 돌려야 했습니다. 아래처럼요. // Java7 이전의 코드 List testDataList = testData(..