자바
-
스트림(2) - 중간 처리언어/JAVA 2023. 7. 14. 14:46
1. 요소 걸러내기(필터링) - 필터링을 위한 메서드는 distinct()와 filter()가 있다. - distinct()는 요소의 중복을 제거한다. >객체 스트림의 경우 equals메소드를 기준으로 판단한다. > IntStream,LongStream 등은 값의 중복을 제거한다. - filter()는 매개값인 Predicate가 true인 요소만 리턴한다. Predicate는 IntPredicate,LongPredicate,DoublePredicate등이 있다. (함수형 인터페이스임) (매개변수로 주어진 값을 통해 조건검사 - true나 false를 리턴하도록 람다식을 짜)[test()메서드] 2. 요소 변환(매핑) -매핑은 스트림을 다른 요소로 변환하는 중간 처리 기능을 한다. - mapXXX(), ..
-
스트림(1) - 스트림이란,리소스로 스트림 얻기언어/JAVA 2023. 7. 14. 13:50
1. 스트림이란? - java8부터 추가된 컬렉션 및 배열의 요소를 반복 처리하기 위해 등장. - 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다. - 스티림을 통해 List를 반복처리하면 다음과 같다. Stream stream = list.stream(); stream.forEach(item -> //item처리); //StreamEx.ja public class StreamExample{ public static void main(String[] args){ Set set = new HashSet(); set.add("홍길동"); set.add("신용권"); set.add("김자바"); Stream stream = set.stream(); stream.forEach(System.out.pri..
-
- JavaNextStep - 숫자야구게임(1) - 단위테스트언어/JAVA 2023. 7. 10. 17:10
- 학습테스트 > 내가 만든 api를 테스트하는게 아니라, 다른 사람이 구현해 놓은 라이브러리가 어떻게 동작하는지 단위테스트를 통해 알아보는 것 학습테스트이다. > 새로운 라이브러리를 테스트 기반으로 할 수 있다. (빠르게 학습 가능해진다) > 학습 테스트를 통해 - 단위 테스트 방법 학습 - 단위 테스트 도구 사용법 익힐 수 있다. - 사용하는 API에 대한 학습 효과가 있다. 1. String 클래스에 대한 학습 테스트 1.1 요구사항 1에 대해 @DisplayName("split Test") @Test void splitTest(){ String[] input = "1,2".split(","); assertThat(input).contains("1","2"); } @Test void splitTes..
-
객체지향 - 캡슐화언어/JAVA 2023. 6. 12. 21:14
캡슐화: 서로 연관있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것 캡슐화의 기능 데이터 보호 - 외부로부터 클래스에 정의된 속성과 기능들을 보호 데이터 은닉 - 내부의 동작을 감추고 외부에는 필요한 부분만 노출 1. 캡슐화는 왜 하는걸까? 구조체,함수들을 이용한 구조적인 프로그래밍을하면, 기존의 절차지향적인 프로그래밍보다 좀 더 구조화된 프로그램을 만들 수 있었다. 하지만, 구조적 프로그래밍은 함수의 개체수가 많아지게 되고 이때 함수를 어떤 기준으로 수납할 것인가?하는 문제가 발생하게 된다. 함수는 크게 1. 기능 2. 데이터 두개의 기준으로 나눌 수 있을 것이다. 이때 데이터에 따라 함수를 분리하면 구조화된 데이터를 사용하는 함수 모듈의 독립성을 침해하는 문제..
-
자바 - 열거형(enums)언어/JAVA 2023. 3. 26. 16:51
1. 열거형이란? - 열거형은 서로 관련된 상수를 묶어놓은 것이다. java의 열거형은 타입도 관리하여 타입에 안전한 열거형이다. - 마치 인스턴스가 미리 정의된 클래스로 생각해 볼 수 있다. 1.2 열거형의 정의와 사용 - enum 열거체명 {상수명1,상수명2..} 등으로 정의할 수 있다. - 선언 위치는 클래스와 동일하다. 클래스 내부, 외부, 혹은 하나의 클래스파일에 정의할 수 있다. - 사용법은 열거체 참조변수에 열거체.상수명 혹은 열거형체.valueOf(상수명) - 모든 열거형의 조상 Enum에 Enum에 기본적으로 사용가능한 메서드들이 정의되어 있다. enum Direction {EAST,SOUTH,WEST,NORTH} Direction dir = Direction.EAST; Direction..
-
자바 - Generics언어/JAVA 2023. 3. 16. 12:09
1. Generics란? -데이터타입의 일반화를 의미 (generalize) -다양한 타입의 객체를 다루는 메서드나, 컬렉션 클래스에 타입체크 기능 -컴파일 시 이러한 타입 체크를 통해 타입의 안정성을 제공하고, 타입체크와 형변환 생략으로 코드가 간결해진다. 간단하게 객체의 타입을 미리 명시하므로써 형변환의 번거로움을 줄이고, 잘못된 타입의 기입을 컴파일 과정에서 잡아내어 오류를 줄여준다. *generics가 도입되기 이전인 JDK 1.5이전에는 여러타입을 매개변수로 받거나, 반환할 때 Object를 사용했다. ->이 경우에 Object타입을 다시 형변환해야하는 번거로움이 있고, 이 과정에서 오류 발생 가능성이 있다. generics는 이를 보완해준다. * List처럼 인스턴스 필드에 타입 변수 객체 가..
-
자바 콘솔 -bulls and cows 게임미니 2023. 3. 10. 13:57
class Number_exceed_Exception extends Exception { String msg; Number_exceed_Exception(int a, int b) { this.msg = "Error: it's not possible to generate a code with " + "a length of " + a + " with " + b + " unique symbols."; } Number_exceed_Exception() { } } class Maxinum_number_Exception extends Number_exceed_Exception { Maxinum_number_Exception() { super.msg = "Error: maximum number of possible ..
-
자바 콘솔 -커피머신미니 2023. 3. 9. 11:36
import java.util.Scanner; public class CoffeeMachine { public static void main(String[] args) { CoffeeMachine a = CoffeeMachine.getCoffeeMachine(); a.On(); } private int[] igre = new int[5]; private enum selection { ESPRESSO(new int[]{250,0,16,4}), LATTE(new int[]{350,75,20,7}), CAPPUCCINO(new int[]{200,100,12,6}); private int[] ing = new int[4]; private selection(int[] re){ this.ing = re; } pub..