key기준 최대값 / 최소값 찾기import java.util.Collections;import java.util.HashMap;import java.util.Map; public class HashMapMax { public static void main(String[] args) { // HashMap 준비 Map map = new HashMap(); map.put(1, 5); map.put(2, 70); map.put(3, 50); // Max Key Integer maxKey = ..
jjuya
MapHashMap이란?Map의 인터페이스를 구현한 대표적인 Map 컬렉션 - Map의 성질을 그대로 가지고있음Map은 key와 값으로 구성된 Entity객체를 저장하는 구조를 가진 자료구조 (여기서 key값은 객체)Value는 중복저장 OKey는 중복저장 X기존에 저장된 키와 동일한 키를 가진 값을 저장하면 기존값은 없어지고 새로운 값으로 대체됨HashMap은 이름 그대로 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을보임해시 함수를 통해 '키'와 '값'이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알수 없고, 삽입되는 순서와 들어있는 위치 또한 관계가 없음 HashMap 선언HashMap map1 = new HashMap();HashMap map2 = new HashM..
Java 라이브러리자바 언어를 활용함에 있어 필요한 필수적인 기능을 라이브러리를 통해 제공java.langjava,utiljava.io Java.lang 패키지기본적인 자바 기능이 포함된 패키지String 클래스문자열을 저장하고 다루기 위해 사용https://jjuya.tistory.com/9 Math 클래스수학 연산에 관련된 다양한 기능을 제공https://jjuya.tistory.com/117 StringBuider클래스가변(mutable)기반의 문자열을 조작 메서드가 많이 존재빈번한 수정이 있을때 유용함https://jjuya.tistory.com/118 JavaUtil 패키지Array 클래스배열을 조작 하기 위한 다양한 정적 메서드 제공https://jjuya.tistory.com/119
Java.Util 패키지 Array클래스sort(), 배열 정렬int[] numbers = {5, 3, 8, 1, 2};// 기본 오름차순Arrays.sort(numbers);System.out.println(Arrays.toString(numbers));// [1, 2, 3, 5, 8]// =============================================// 내림차순Arrays.sort(arr, Collections.reverseOrder());System.out.println(Arrays.toString(numbers));// [8, 5, 3, 2, 1]// =============================================// 내림차순 Comparator 직접구현Arr..
Java.lang 패키지 StringBuilder클래스append(), 문자열 추가StringBuilder sb = new StringBuilder();sb.append("Hello");sb.append("!"); length(), 문자열 길이 반환sb.length(); // 6 substring(int beginIndex, int denIndex), 문자열의 부분 문자열 반환String subStr = sb.substring(0, 5); // "Hello" charAt(int index), 특정 인덱스의 문자 반환char ch = sb.charAt(1); // 'e' indexOf(String str), 툭정 문자또는 문자열의 처음 인덱스 반환 int index = sb.indexOf("el"); // 1
Java.lang 패키지 Math 클래스abs(), 절대값 구하기int a = -10;int absValue = Math.abs(a);System.out.println(absValue); // 10 max(), 최대값 구하기int x = 5;int y = 10;int maxValue = Math.max(x, y);System.out.println(maxValue); // 10 - 큰 값 출력 min(), 최소값 구하기int minValue = Math.min(x, y);System.out.println(minValue); // 5 - 작은 값 출력 pow(), 제곱 구하기double base = 2;double exponent = 3;double result = Math.pow(base, exponent..
백준 코딩테스트 문제를 풀다 보니 꼭 필요한 부분이 입/출력 관련된 개념이었다!입출력에는 어떤 종류들이 있을까? 또 어떤 상황에서 사용하면 좋을지 알아보자! 입/ 출력 방식표준 입력표준 출력Scanner 클래스 활용 - 간단한 입력에 활용BufferedReader 클래스 활용- 입력 데이터가 많을 경우 사용- 내부적으로 buffer를 사용하여 속도가 빠름- StringTokenizer 와 함께 사용 (공백을 기준으로 입력받을때 사용) System.out.println 함수 활용 - 간단한 출력에 활용StringBuilder 사용 ( + 연산을 사용하지 않아도 됨)BufferedWriter 클래스 활용- 출력 데이터가 많을 경우 사용 입력방법Scanner - 공백을 기준으로 호출한 타입에 맞추어 입력- ..
운영체제는 실행 중인 프로그램을 프로세스 process로 관리한다.하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드 가 있기 때문이다여기서 스레드란? 프로그램을 실행하는 가장 작은 단위, 코드의 실행 흐름을 말한다.일반적으로 자바 애플리케이션을 만들어 실행시키면 1개의 main 스레드에 의해 프로그램이 실행된다1개의 스레드만으로는 동시에 여러 작업을 할 수 없다멀티 스레드는 하나의 스레드가 예외를 발생시키면 프로세스가 종료되기 때문에 다른 스레드에게 영향을 미친다멀티 스레드를 사용할 경우에는 예외 처리에 만전을 기해야 한다Thread-Safe란?멀티 스레드 프로그래밍에서 다수의 스레드가 공유 자원에 접근해도 프로그램이 문제없이 동작하는 것을 의미한다.
Java8부터는 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API 들을 제공해 주고 있다스트림이란컬렉션 배열의 요소를 하나씩 참조하여 람다 표현식으로 처리할 수 있는 반복자(내부 반복자)(이전에는 for 문이 나 Interator를 사용했다고 한다 - 외부 반복자)외부 반복 자일 경우 컬렉션의 요소를 외부로 가져오는 코드와 처리하는 코드를 모두 개발자 코드가 가지고 있어야 한다반면 내부 반복 자일 경우 개발자가 코드에서 제공한 데이터 처리 코드(람다식)를 가지고 컬렉션 내부에서 요소를 반복 처리한다) Stream 특징람다 표현식스트림은 람다식으로 요소 처리 코드를 제공스트림이 제공하는 대부분의 요소 처리 메서드는 함수형 인터페..
Stream 연산자들은 매개변수로 함수형 인터페이스를 받도록 되어있다그리고 람다식은 반환값으로 함수형 인터페이스를 반환하고 있다그렇기 때문에 우리는 Strem API를 정확히 이해하기 위해서는 람다식과 함수형 인터페이스에 대해 알아야 한다! 람다식이란?함수를 하나의 식(expression)으로 표현한 것함수를 람다식으로 표현하면 메서드의 이름이 필요 없기 때문에, 람다식은 익명(Anonymous Function) 함수의 한 종류 하고 볼 수 있다.익명 구현 객체이름이 없는 인터페이스 구현 객체// 기존의 방식반환타입 메소드명 (매개변수, ...){ 실행문}// 예시public String hello(){ return "Hello World!"}람다식으로 작성 시 메서드명이 불필요하며, 다음과 ..