java257 [자바의 신] 24장 24장 - 자바랭 다음으로 많이 쓰는 애들은 컬렉션 ― Part3 (Map) Map 모든 데이터는 키와 값이 존재 키 없이 값만 저장 불가 값 없이 키만 저장 불가 키는 해당 Map에서 고유해야 값은 Map에서 중복이어도 상관 x 자바의 Map은 키와 값이 1:1로 저장됨 Map 인터페이스에 선언된 메서드 리턴 타입 메서드 이름 및 매개 변수 설명 V put(K key, V value) 첫 번째 매개 변수인 키를 갖는, 두 번째 매개 변수인 값을 갖는 데이터 저장 void putAll(Map Basic XML Property file http://www.test.com Adrian, Black 자바의 자료구조 종합 정리 2022. 8. 9. [자바의 신] 23장 23장 - 자바랭 다음으로 많이 쓰는 애들은 컬렉션 ― Part2 (Set과 Queue) Set 데이터 중복 허용 x (순서 x) ➡ 데이터가 같은지 확인하는 작업이 핵심 = 중복 방지 및 원하는 값 포함되어 있는지 확인 equals()와 hashCode() 구현이 매우 중요 HashSet TreeSet LinkedHashSet 순서 전혀 필요 없는 데이터를 해시 테이블(hash table)에 저장 Set 중 가장 성능 좋음 저장된 데이터의 값에 따라 정렬되는 Set red-black이라는 트리(tree) 타입으로 값이 저장됨 HashSet보다 약간 성능 느림 연결된 목록 타입으로 구현된 해시 테이블에 데이터 저장 저장된 순서에 따라 값이 정렬됨 성능은 가장 나쁨 성능 차이 발생 이유 : 데이터 정렬 r.. 2022. 8. 9. [자바의 신] 22장 22장 - 자바랭 다음으로 많이 쓰는 애들은 컬렉션 ― Part1 (List) 자바의 컬렉션 목록성 데이터를 처리하는 자료 구조를 통칭 자료 구조 Data Structure 어떤 정보를 담는 것 하나의 데이터가 아닌 여러 데이터 담을 때 사용 ex) 배열, DTO, ... 배열 가장 기본적인 자료 구조 성능상이나 메모리 효율면에서 가장 좋음 But 그 크기가 정해져 있있을 때 유용 자바의 데이터 담는 자료 구조 List Set Queue Map 순서 있는 목록 순서 중요하지 않음 먼저 들어온 것이 먼저 나감 키-값(key-value)으로 저장됨 Collection Collection 인터페이스 선언 public interface Collection extends Iterable Iterable 인터페이스.. 2022. 8. 9. [자바의 신] 21장 21장 - 실수를 방지하기 위한 제네릭이라는 것도 있어요 JUnit 메서드나 클래스 같은 작은 단위를 쉽게 테스트할 수 있도록 도와주는 프레임워크 DTO (Data Transfer Object) 예시 package d.generic; import java.io.Serializable; public class CastingDTO implements Serializable { private Object object; public void setObject(Object object) { this.object = object; } public Object getObject() { return object; } } private 변수, getter, setter, Serializable 구현해야 제대로 된 DTO.. 2022. 8. 9. [자바의 신] 20장 20장 - 가장 많이 쓰이는 패키지는 자바랭 java.lang 패키지 자바 패키지 중 유일하게 java.lang 패키지에 있는 클래스들은 import 안 해도 사용 가능 자바에 꼭 필요한 기능 제공 java.lang 패키지에 정의된 중요한 에러 OutOfMemoryError (OOME) 메모리 부족으로 발생하는 에러 자바는 가상 머신에서 메모리를 관리하나, 프로그램을 잘못 작성하거나 설정이 제대로 되어있지 않은 경우에 해당 에러 발생함 StackOverFlowError 호출된 메서드의 깊이가 너무 깊을 때 발생함 자바에서는 스택(Stack)이라는 영역에서 어떤 메서드가 어떤 메서드를 호출했는지에 대한 정보를 관리함 예를 들어 메서드가 자기 자신을 호출하는 재귀 메서드를 잘못 작성하면 스택에 쌓을 수 있는.. 2022. 7. 26. [자바의 신] 19장 19장 - 이쯤에서 자바의 역사와 JVM에 대해서 알아보자 자바의 모토 Write Once, Run Anywhere (WORA) JDK의 플랫폼에 따른 차이 Java 버전에서 제공되어야 하는 표준 문서가 만들어지면 그 기준에 해당하는 각 벤더에 맞는 JDK가 별도로 만들어짐 우분투 리눅스 OS OpenJDK가 기본적으로 설치되어 있음 WAS Web Application Server 자바에서 사용되는 용어 JDK: Java Development Kit J2SE: Java 2 Standard Edition Java SE: Java Standard Edition JDK: Java Development Kit JRE: Java Runtime Environement 자바를 실행할 수 있는 환경의 집합(실행만을 위.. 2022. 7. 26. [자바의 신] 18장 18장 - 이제 기본 문법은 거의 다 배웠으니 정리해 봅시다 객체지향 관련 용어 목록 클래스(Class) 상태(state)와 행위(behavior) 캡슐화(Encapsulation) 메시지(Message) 객체(Object) 상속(Inheritance) Overriding 다형성(Polymorphism) Overloading 클래스(Class) 상태와 행위를 갖는 자바의 기본 단위 상태(state)와 행위(behavior) 상태 = 클래스나 인스턴스 변수 행위 = 메서드 캡슐화(Encapsulation) 연관된 상태와 행위를 결정하는 기능을 묶어주는 것 기능을 묶어주면 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉(information hiding) 가능 하나의 객체 위한 코드가 다른 객체 위한 .. 2022. 7. 26. [자바의 신] 17장 17장 - 어노테이션이라는 것도 알아야 한다 어노테이션 정의 Annotation 클래스나 메서드 등 선언 시 @ 사용 메타 데이터(Metadata)라 부르기도 함 쓰임 컴파일러에 정보 알려줄 때 컴파일 및 설치(deployment) 시 작업 지정할 때 실행 시 별도 처리 필요할 때 자바 언어에서 사용하기 위해 정해져있는 어노테이션 @Override 해당 메서드가 부모 클래스에 있는 메서드 Override 했다는 걸 명시적 선언 @Deprecated 컴파일러에 해당 클래스나 메서드는 더 이상 사용하지 않는다는 걸 알려줌 컴파일 결과, 경고만 있음(에러 x) = 컴파일 완료 = 클래스 파일 생성됨 @SuppressWarnings 컴파일러에 해당 소스는 일부러 이렇게 코딩한 것이니 경고해줄 필요 없다고 알려줌.. 2022. 7. 25. [자바의 신] 16장 16장 - 클래스 안에 클래스가 들어갈 수도 있구나 클래스 안의 클래스, Nested 클래스 코드 간단 표현 가능 자바 기반의 UI 처리 시 사용자 입력 및 외부 이벤트 처리하는 곳에서 많이 사용 package c.inner; public class PublicClass { } class JustNotPublicClass { } 파일 이름 : public한 클래스 이름 따서 정의해야함(컴파일 에러 방지) Nested 클래스 사용 이유 한곳에서만 사용되는 클래스를 논리적으로 묶어 처리할 때 = Static nested 클래스 사용 이유 캡슐화 필요할 때 = 내부 구현 감추고 싶을 때 = 내부(inner) 클래스 사용 이유 소스 가독성과 유지보수성 높이고 싶을 때 Static nested 클래스 내부 클래스.. 2022. 7. 25. [백준] 2231번 : 분해합 - Java https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 알고리즘 - 브루트 포스 정의 난폭한(무식한) 힘 무차별적 대입 방법 특징 가능한 모든 경우의 수 대입 ➡ 조건에 만족하는 값만을 찾아냄 자원만 충분하다면 원하는 값을 100% 확률로 찾을 수 있음 "빠짐 없이" 완전탐색 알고리즘을 잘 설계하는 게 핵심 구현 방법 1. 예제 //예제1 - 198 198 + 1 + 9 + 8 = 216 198 = 생성자 216 = 198.. 2022. 4. 12. [백준] 2798번 : 블랙잭 - Java https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 알고리즘 - 브루트 포스 정의 난폭한(무식한) 힘 무차별적 대입 방법 특징 가능한 모든 경우의 수 대입 ➡ 조건에 만족하는 값만을 찾아냄 자원만 충분하다면 원하는 값을 100% 확률로 찾을 수 있음 "빠짐 없이" 완전탐색 알고리즘을 잘 설계하는 게 핵심 풀이 1. Scanner import java.util.Scanner; public class Main { pub.. 2022. 4. 12. [백준] 11729번 : 하노이 탑 이동 순서 - Java https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 주의점 Scanner + System.out.println(): 시간 초과 에러 발생 알고리즘 재귀 핵심 순서 일정 규칙 찾기 ➡ 최소 단위에서 적용 재귀를 통해 '가장 작은 단위'가 될 때까지 재귀 호출 반복 가장 작은 단위까지 호출되면 그 지점에서 구현한 연산 실행 하노이의 탑 핵심 규칙 큰 원판이 작은 원판 위에 있어서는 안 됨 하노이의 탑 풀이 n개의 원판이 있다고 가정 1. .. 2022. 4. 7. 이전 1 ··· 13 14 15 16 17 18 19 ··· 22 다음