Java
-
[intelliJ] 놀라운 단축키 모음Java 2023. 1. 5. 16:25
멀티커서 위아랫줄 찍기 : opt 두번연타(두번째 누르고 있기) + 방향키 위/아래 중간 글자 대문자로 변경하기 : cmd + shift + u 멀티커서 찍기 : shift + opt + 더블클릭 멀티커서 위치 찍기 : shift + opt + 클릭 동일한 단어 차근차근 멀티커서에 담기 : ctrl + g 입력값을 매개변수로 만들고 가져오기 : cmd + opt + p // 변경 전 ("kim"에 커서를 대고 단축키 입력!) public void test(){ Member member = new Member("kim"); } // 변경 후 public void test(String name){ Member member = new Member(name); } 특정 코드를 새 메서드로 뽑아내기 : cmd +..
-
[JAVA] 어떤 Stream은 sum()을 쓰고 어떤 Stream은 sum()을 못쓰는 이유Java 2022. 12. 2. 12:11
다른 스트림에서 .sum()을 썼었는데 왜 여기엔 .sum()이 없지? 제목과 같은 상황이 발생했다. 어떻게 스트림을 만들었냐에 따라 메서드를 사용할 수 있는게 있고 없는 게 있는 것이다. 이것은 언젠간 꼭 정리해야 하는 개념이라 포스팅을 남겨놓는다. Stream은 여러 클래스에 내장메서드로 들어있다. 1. 기본형 (Primitive Type) 특화 스트림(IntStream, LongStream, DoubleStream) int[] arr = new int[] {1,2,3,4,5,6,7,8,9,10}; IntStream stream = Arrays.stream(arr); String[] arr2 = new String[] {"사과", "배", "바나나"}; Stream stream2 = Arrays.st..
-
[JAVA] 숫자 Stream 조건걸고 만드는 여러가지 방법Java 2022. 12. 1. 14:18
1. 난수(랜덤숫자) 스트림 만들기 IntStream intStream = new Random().ints(개수, 몇부터, 몇까지); 또는 ints에 1번 파라미터(개수)를 빼고, 연산부에서 limit(개수)를 줄 수 있다. IntStream intStream = new Random().ints(몇부터, 몇까지); intStream .limit(5) // 🔥 5개만 자르기 .forEach(System.out::println); 2. 특정 범위의 정수 스트림 만들기 IntStream intStream = IntStream.range(1, 5); intStream.forEach(System.out::println); // 1, 2, 3, 4 IntStream intStream = IntStream.range..
-
[JAVA] null 예외를 깔끔하게 해주는 Optional 클래스Java 2022. 12. 1. 11:37
Optional을 쓰는 이유 객체를 다룰 때 언제든지 null이 발생할 일은 있다. NullPointerException이 발생하면 이것을 하나하나 try/catch문으로 예외처리를 해줘야 한다. 이런 예외처리를 다 if문, try/catch문을 남발하며 잡아주면 코드 가독성이 떨어지고 또 다른 디버깅의 위험을 초래할 수 있다. 그래서 나온 Optional은 null이 발생하는 일을 근본적으로 없애줄 대안을 제시한다. Optional을 쓰는 방식 null이 나올 수 있는 변수를 애초에 Optional 객체에 담아버림으로서, Optional 클래스의 메소드를 통해 null을 대체할 것(value)을 준비해서 리턴해준다. 메서드의 종류는 여러가지가 있다. Optional.of() : 괄호 안에 null을 대..
-
[JAVA] String 변수 값이 같은지 확인할 때는 equals()를 사용하자(쓰지마 ==)Java 2022. 11. 23. 16:22
배열을 for문 돌려서 특정 값과 같은 객체를 뽑아서 핸들링 하려는 과정이 있을 것이다. 예를 들어 아래와 같다. if(value == data.get(i).value){ return true; }else if(value != data.get(i).value){ return false; } 이런 경우 if문이 문제없이 돌아갈 때도 있지만 때때로 'value == data.get(i).value' 가 분명 맞는데도 '같지않다(!=)'라고 될 때가 있다. 그 이유는 String 변수는 그 값이 설정된 위치를 가르키는 참조형 연산자라 인스턴스가 같은지를 비교해서 그런 것이다. 그래서 값을 비교할 때는 == 보다는 equals를 이용해 String을 비교하는게 더 정확하다. if(data.get(i).value..