Java
-
Optional 클래스Java 2023. 9. 8. 20:30
java.util.Optional 클래스 Optional 클래스는 Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)입니다. public final class Optional { /** * If non-null, the value; if null, indicates no value is present */ private final T value; } 이러한 Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있습니다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 됩니다. Optional 객체의 생성 of() 메소드나 ofNullabl..
-
String, StringBuffer, StringBuilderJava 2023. 8. 31. 22:29
String, StringBuffer, StringBuilder 문자열을 저장하고 관리하는 클래스 String immutable(불변) 한번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 합니다. (즉, String 클래스 객체는 Heap 메모리 영역(가비지 컬렉션이 동작하는 영역)에 생성. 한번 생성된 객체의 내부 내용을 변화시킬 수 없습니다. 기존 객체가 제거되면 Java의 가비지 컬렉션이 회수합니다.) String 객체는 이러한 ..
-
정규식 사용법Java 2023. 8. 18. 23:03
정규식 기본 기호 기호 설명 예제 . 임의의 문자 1개를 의미 ^ 시작을 의미한다 [] 괄호 안에 있다면 일치하지 않는 부정의 의미로 쓰인다 ^a : a로 시작하는 단어 [^a] : a가 아닌 철자인 문자 1개 $ $앞의 문자열로 문자가 끝나는지를 의미 a$ : a로 끝나는 단어 [] [] 괄호 안의 문자가 있는지를 확인한다 [ab][cd] : a, b 중 한 문자와 c, d 중 한 문자 -> ac ad bc bd [^] [] 대괄호 안에 ^ 문자가 있으면, 제외를 뜻함 - 대괄호 안에 ^ 가 쓰이면 제외의 뜻 - 대괄호 밖에 ^ 가 쓰이면 시작점의 뜻 [^a-z] : 알파벳 소문자 a부터 z까지를 제외한 모든 문자 - 사이의 문자 혹은 숫자를 의미한다 [a-z] : 알파벳 소문자 a부터 z까지 하나 [..
-
Iterator, Enumeration 인터페이스Java 2023. 6. 30. 01:26
ArrayList, HashSet 등은 Iterator Vector, Hashtable 등은 Enumeration Enumeration boolean hasMoreElements() boolean 타입을 반환 현재 커서 이후에 요소들이 있는지 여부를 체크 요소가 있으면 true, 없으면 false를 반환 맨 처음 커서는 첫번째 요소 직전에 위치 E nextElement() E 타입을 반환(E는 nextElement 객체를 생성할 때 쓰는 타입과 동일하게 지정한다.) 커서를 다음 요소로 이동 시키고, 가리키고 있는 요소 객체를 꺼내 반환한다. import java.util.*; public class Program{ public static void main(String[] args) { Vector v ..
-
SetJava 2023. 6. 27. 22:49
Set 인터페이스 중복X 저장 순서X Iterator를 사용하여 데이터 조작 주요 클래스 HashSet LinkedSet TreeSet HashSet Set hashSet = new HashSet(); hashSet.add("apple"); hashSet.add("tomato"); hashSet.add("apple"); hashSet.add("banana"); System.out.println("데이터 수 : " + hashSet.size()); Iterator iterator = hashSet.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } 데이터 수 : 3 banana apple tomato apple 중복X..
-
ListJava 2023. 6. 27. 21:51
List 인터페이스 배열과 유사하지만 크기 지정X 중복 허용 저장 순서O 주요 클래스 ArrayList LinkedList ArrayList List arrayList = new ArrayList(); arrayList.add("apple"); arrayList.add("tomato"); arrayList.add("banana"); System.out.println(arrayList); [apple, tomato, banana] LinkedList 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당 출처 : https://coding-factory.tistory.com/552
-
날짜 클래스 (자바 8 이후)Java 2023. 6. 27. 00:44
LocalDate 로컬 날짜 클래스 LocalDate nowDate = LocalDate.now(); LocalDate date = LocalDate.of(int year, int month, int dayOfMonth) now() : 기본 시간대의 시스템 시계에서 현재 날짜를 가져옴 of() : 년, 월, 일에서 인스턴스를 가져옴 LocalDate nowDate = LocalDate.now(); LocalDate date = LocalDate.of(2023, 1, 1); System.out.println(nowDate); System.out.println(date); 2023-06-26 2023-01-01 LocalTime 로컬 시간 클래스 LocalTime nowTime = LocalTime.now(..
-
MapJava 2023. 6. 26. 03:04
Map 인터페이스 키와 값을 하나의 쌍으로 저장하는 방식(key-value) 키는 중복을 허용하지 않지만, 값은 중복을 허용 요소의 저장 순서를 유지X 주요 클래스 HashMap LinkedHashMap TreeMap HashMap HashMap hashMap = new HashMap(); Hashtable의 개선버전 배열 + 링크드 리스트의 구조 HashMap hashMap = new HashMap(); hashMap.put("apple", "apple"); hashMap.put("tomato", "tomato"); hashMap.put("banana", "banana"); System.out.println(hashMap.toString()); {banana=banana, apple=apple, tom..