본문 바로가기

전체 글

(268)
Stream Stream java8 버전부터 lambda와 함께 Stream기능을 제공한다. Stream은 흐름이라는 뜻으로 배열, 컬렉션 객체 요소를 효율적으로 다룰 수 있고 람다식을 지원하여 코드가 간결하다는 장점이 있다. 특징 원본 데이터 자체를 변경하지 않는다 한번 사용하면 닫혀서 재활용(재사용) 이 불가능하다 내부 반복문으로 처리하여 코드가 간결해 보인다 1. 여러가지 방법으로 Stream 생성하기 import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class StreamBasic { public static void main(String[] args) { //Array String[] arr1 = new..
Thread (lambda) Thread 하나의 프로세스(실행중인 프로그램) 안에서 실질적인 작업을 처리하는 하나하나의 단위 (JVM에서 하나의 프로세스가 수행되고 main문 안의 실행문들이 하나의 스레드) 람다식을 사용하여 스레드 생성 public class LambdaThread { public static void main(String[] args) { for (int i = 0; i { System.out.println(num +" start lambda Thread"); try{ Thread.sleep(1000); } catch(Exception ignored){ } System.out.println(num + " end lambda Thread :..
lambda 람다식 (Lambda) ( java8 에서 지원하기 된 lambda ) //람다식의 구조 {데이터 타입 매개변수, ... } -> { 실행문 , ...} 좌측 매개변수를 사용하여 -> 우측 중괄호 {} 부분을 실행한다 람다식을 사용하는 이유는 불필요한 클래스 정의도 필요없고 메소드도 필요가 없다. 그래서 람다는 익명함수라고도 불린다. @FunctionalInterface 추상 메서드가 오직 하나인 함수형 인터페이스 위 어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사 즉 컴파일러에 추상 메서드가 하나만 있는지 확인하게한다 아래는 함수형 인터페이스를 통해 더하기와 제곱을 계산하는 람다식 예제 public class lambdaExam { public static void main(Stri..
Wrapper Class란 Wrapper Class란? 기본 자료형 값을 객체로 다루기 위해 사용하는 클래스 이다. 위 사진과 같이 모든 기본 자료형은 값을 가지는 객체를 생성 할 수 있다. 이렇게 객체를 Wrapping 한다고 해서 Wrapper Class이다. Wrapper Class 사용 이유와 특징 -참조 자료형 Reference Data Type 기본 자료형이 아닌 모든 자료형이 참조 자료형이다. 기본 자료형은 실제 값을 저장하지만 참조 자료형은 인스턴스 주소를 저장한다. java 최상위 클래스인 Object를 상속받는다 ( class, interface, array, enum type ) 1. 기본 자료형을 참조형 자료형 처럼 사용하기 위해 2. 기본 자료형을 감싸 객체형태로 만든다. -> 객체 타입으로 저장하거나 매개..
Java - Collection Collection Framework 자료구조를 기반으로 읽기 추가 삭제 검색 등 효율적으로 객체를 사용하기 위해 작성되어있는 인터페이스와 클래스들 제공 (Map도 Collection으로 분류) Collection 1. List 순서가 있는 저장공간 내용 LinkedList 각 노드가 이전 노드와 다음노드의 상태만 알고있음 (양방향 연결 리스트) 데이터 추가 삭제시 주소값을 변경해주면 되기때문에, 추가 삭제 성능이 좋다 맨 마지막 값이나 처음값 추가 삭제시 O(1) 시간복잡도 (양방향 연결 리스트) 단점 조회 성능이 느리다 ArrayList 데이터에 대한 인덱스를 가짐. 조회 성능이 좋다 O(1) 순서가 있고 중복값 허용 단점 데이터 추가 삭제가 느리다. Stack LIFO(last in first ou..
0929 - java 문법 기본 1. 컬렉션 정리 https://gangnam-americano.tistory.com/41 [JAVA] Java 컬렉션(Collection) 정리 [JAVA] Java 컬렉션(Collection) 정리 ■ Java Collections Framework(JCF) Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬.. gangnam-americano.tistory.com 2. Wrapper Class [Java] 래퍼 클래스(Wrapper Class)란 무엇인가? (박싱, 언박싱) 래퍼 클래스란(Wrapper Class)? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타..
[백준] 2225 - 합분해 (java) 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 두 정수 n과 k를 입력받는다 여기서 n은 만드려고 하는 수, k는 n을 만들기 위해 사용하는 수의 갯수이다. 0부터 n까지 정수 k개를 더해서 합이 n이 되는 경우의 수를 구한다. 만약 입력값이 4 2 라면 1 3 3 1 4 0 0 4 2 2 이렇게 5가지가 된다 문제 풀이 우리가 구하는 경우의 수를 k와 n에 따라 dp에 저장하기 위해 dp[k+1][n+1] 배열을 만들었다. 1. n = 0일때 (만드려는 수가 0) 만드려는 수(n)가 0이면 자릿수(k)가 어떻게 되던지 1가지 방법이 나온다. (n = 0 , k = 3 이면 0 0 0으로 한가지 n = 0, k = 4면 0 0 ..
[백준] 9095 - 1,2,3더하기 (java) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제내용 첫번째 줄은 테스트 케이스 수이고 두번째 줄부터 각 테스트 정수 n이 주어진다. 1,2,3의 합으로 정수 n을 구하는 수를 출력하자. (한개 이상 수를 사용해야한다) 문제풀이 아래는 1부터 4까지 가지는 조합의 수이다. n=1 : 1 n=2 : 1+1 2 n=3 : 1+1+1 2+1 1+2 3 n=4 : 1+1+1+1 // (n-1)+1 1+2+1 2+1+1 3+1 1+1+2 // (n-2)+2 2+2 1+3 // (n-3)+3 만약 n=4의 조합의 수는 아래와 같다. n=3의 조합의 수에 +1를 한 값들 n=2의 조합의 수에 +2를 한 값들 n=3의..