organize/자바 40

Java 27

HashMap순서가 없고, 키는 중복이 안되고 값은 중복이 가능Map 인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장HashMap(동기화X), Hashtable(동기화O)의 새로운 버전HashMapMap인터페이스를 구현한 대표적인 컬렉션 클래스순서를 유지하려면, LinkedHashMap클래스를 사용하면 됨TreeMap≒TreeSet범위 검색과 정렬에 유리한 컬렉션 클래스HashMap보다 데이터 추가, 삭제에 시간이 더 걸림(비교 저장)HashMap의 키(key)와 값(value)해싱(hashing)기법으로 데이터를 저장. 데이터가 많아도 검색이 빠름Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장키(key) 컬렉션 내의 키(key) 중에서 유일(ex, id)값(value) 키(key)와 달리 ..

organize/자바 2024.05.14

Java 26

TreeSet범위 탐색, 정렬이진 탐색 트리(binary search tree)로 구현. 범위 탐색(from ~ to)과 정렬에 유리이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖음각 요소(node)가 나무(tree)형태로 연결 class TreeNode{ TreeNode left; //왼쪽 자식노드 Object element; //저장할 객체 TreeNode right; //오른쪽 자식노드 } 이진탐색트리(binary search tree)부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장데이터가 많아질수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가)TreeSet 데이터 저장과정 boolean add(Object o)HashSet은 equals() hashCode()로 비..

organize/자바 2024.05.13

Java 25

HashSet순서X, 중복X Set↑HashSet, SortedSet ← TreeSet HashSetSet인터페이스를 구현한 대표적인 컬렉션 클래스순서를 유지하려면, LinkedHashSet클래스를 사용하면 됨HashSet()HashSet(Collection c) 생성자HashSet(int initialCapacity) 초기용량HashSet(int initialCapacity, float loadFactor) float loadFactor언제 초기 용량을 늘릴것인지boolean add(Object o) boolean addAll(Collection c) 합집합boolean remove(Object o)boolean removeAll(Collection c) 교집합boolean retainAll(Colle..

organize/자바 2024.05.11

Java 24

Iterator, ListIterator, Enumeration컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스(읽어오기)Enumeration은 Iterator의 구버전(≒ Iterator)ListIterator는 Iterator의 접근성을 향상시킨 것(단방향에서 양방향으로)메서드설명boolean hasNext()읽어올 요소가 남아있는지 확인. 있으면 true, 없으면 false 반환(확인)Object next()다음 요소를 읽어옴. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전(읽기)void remove()next()로 읽어온 요소를 삭제. next()를 호출한 다음에 remove()를 호출해야함(선택적 기능)void forEachRemaini..

organize/자바 2024.05.09

Java 23

배열의 장단점장점 : 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근 시간, access time)이 짧음단점 : 1. 크기를 변경할 수 없음(실행중)-크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사※ 더 큰 배열을 생성 -> 기존 배열을 새로 만든 배열에 복사 -> 참조 변경-크기 변경을 피하기 위해 충분히 큰 배열을 생성하면, 메모리가 낭비2. 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸림-데이터 추가, 삭제를 위해 다른 데이터를 옮겨야함-순차적인 데이터 추가(끝에 추가)와 삭제(끝부터 삭제)는 빠름LinkedList 배열의 단점 (크기 변경X, 추가, 삭제 시간 ↑) 을 보완 LinkedList 장점배열과 달리 LinkedList는 불연속적으로 존재하는 데이터를 연결..

organize/자바 2024.05.08

Java 22

컬렉션 프레임워크컬렉션(collection) : 여러 객체(데이터)를 모아 놓은 것프레임워크(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식컬렉션 프레임워크(collection framework)컬렉션(다수의 객체)을 다루기(저장, 삭제, 검색, 정렬 등) 위한 표준화된 프로그래밍 방식컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공java.util패키지에 포함※객체 => 다수의 데이터컬렉션 클래스(collection class)다수의 데이터를 저장할 수 있는 클래스(ex Vector, ArrayList,HashSet) 컬렉션 프레임워크의 핵심 인터페이스List순서가 있는 데이터의 집합. 데이터의 중복을 허용. ArrayList, LinkedList, Stack, Vector ..

organize/자바 2024.05.07

Java 21

※필드 읽기 get(), 필드 변경 set, 필드 초기화 clear()add()특정 필드의 값을 증가 또는 감소(일, 월로 하여금 월, 년이 변경됨) Calendar dateAdd = Calendar.getInstance(); dateAdd.clear(); //모든 필드 초기화 dateAdd.set(2024, 4, 6); //2024년 5월 6일로 설정 dateAdd.add(Calendar.DATE,1); //날짜(DATE)에 1을 더함 dateAdd.add(Calendar.MONTH, -4); //월(MONTH)에서 4을 뺌roll()특정 필드의 값을 증가 또는 감소(일, 월로 하여금 월, 년이 변경되지 않음) //roll() 특정 필드의 값을 증가 또는 감소(일로 하여금 월이 변경되지 ..

organize/자바 2024.05.06

Java 20

날짜와 시간java.util.Date : 날짜와 시간을 다룰 목적으로 만들어진 클래스java.util.Calendar : Date 클래스를 개선한 클래스. 많은 단점이 있으나 현재까지도 많이 사용됨java.time 패키지 : Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공※Date와 Calendar 클래스는 날짜와 시간을 함께 다룬다는 단점이 있으나, time 패키지에서는 날짜는 LocalDate, 시간은 LocalTime, 날짜와 시간은 LocalDateTime으로 사용Calendar 클래스추상 클래스이므로 getInstance()를 통해 구현된 객체를 얻어야함 Calendar calendar = new Calendar(); //에러 발생. 추상 클래스는 인스턴스를 생성할 수 없음 ..

organize/자바 2024.05.05

Java 19

StringBuilder동기화 되어 있지 않기 때문에 멀티 쓰레드에 안전(thread-safe)※StringBuffer와 차이는 동기화 차이, StringBuffer는 동기화 되어있으며, StringBuilder는 동기화 되어 있지 않음※쓰레드(작업 처리) - 싱글 쓰레드(한 번에 1개의 작업 처리), 멀티 쓰레드(한 번에 여러 개의 작업을 처리)멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능 저하 발생, 따라서 StringBuilder를 사용하면 성능 저하를 방지StringBuffer sb = new StringBuffer();sb.append("abc");//↔StringBuilder sb1 = new StringBuilder();sb1.append("abc"); Matrh 클래스수학 메서..

organize/자바 2024.05.04

Java 18

join(), StringJoinerjoin()은 여러 문자열 사이에 구분자를 넣어서 결합package chapter09;public class Study05Ex1 { public static void main(String[] args) { String animals = "dog,cat,pig"; String[] arr = animals.split(","); //문자열을 "," 구분자로 나눠서 배열에 저장 String str = String.join("-", arr); //"dog"+"-"+"cat"+"-"+"pig". 배열의 문자열을 '-'로 구분해서 결합 System.out.println(str); //dog-cat-pig }} 문자열과 기본형 간의 변환package chapter09;pub..

organize/자바 2024.05.03
728x90