본문 바로가기

Java

Java Comparable, Comparator 인터페이스 Comparable과 Comparator는 객체 정렬에 필요한 메서드(정렬 기준 제공)를 정의한 인터페이스 1. Comparable - java.lang 패키지 - 기본 정렬 기준을 구현하는데 사용 public interface Comparable { public int compareTo(T o); // 주어진 객체(o)를 자신과 비교 // 반환값은 int형이지만 실제로 비교하는 객체가 같을 시 0, 비교하는 값보다 작으면 음수, 크면 양수 } - Comparable을 구현하는 클래스는 같은 타입의 인스턴스끼리 서로 비교할 수 있는 Integer, String, Date, File 등이 있음 - 기본적으로 오름차순으로 구현됨(정렬) 2. Comparator - java.util 패키지 - 기본 정렬 기준.. 더보기
Java Arrays 클래스(Arrays Class) 1. Arrays 클래스 - 배열을 편리하게 다루기 위한 static 메서드 제공 2. Arrays클래스의 메서드 종류 - 같은 기능의 메서드가 배열의 타입만 다르게 오버라이딩 되어 있음 1) 배열의 복사 - copyOf(배열명): 배열 전체 복사 - copyOfRange(배열명, 시작 인덱스, 끝 인덱스+1): 배열의 일부를 복사해서 새로운 배열을 만들어 반환, 지정된 범위의 끝은 포함하지 않음 int[] arr = {0,1,2,3,4}; int[][]arr2D = {{11,12,13}, {21,22,23}}; // 배열의 복사 copyOf() int[] arr2 = Arrays.copyOf(arr, arr.length); // arr 배열에서, arr배열 길이만큼 int[] arr3 = Arrays... 더보기
Java Iterator, ListIterator, Enumeration 인터페이스 - 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 - 컬렉션(List, Set)에 저장된 요소들을 읽어오는 방법을 표준화 한 것 👉🏻 표준화로 코드의 일관성을 유지하여 재사용성을 높임 1. Iterator - 컬렉션에 iterator()를 호출하여 Iterator를 구현한 객체를 얻어 사용 - Iterator인터페이스의 메서드 메서드 설명 boolan hasNest() - 읽어 올 요소가 남아있는지 확인 - 있으면 ture, 없으면 false 반환 Object next() - 다음 요소 읽어오기 - next()를 호출 전 hasNext()를 호출하여 읽어 올 요소가 있는지 확인 void remove() - next()로 읽어 온 요소 삭제 - next() 호출 후 romove()를 호출(선택적 .. 더보기
Java 스택과 큐 1. 스택(Stack) - LIFO(Last In First Out) 구조로 마지막에 저장(push)된 것을 제일 먼저 꺼냄(pop) - 순차적으로 저장하는 스택은 배열(ArrayList)로 저장하는 것이 효율적 - 스택(Stack) class의 메서드 메서드 설명 boolean empty() 스택이 비어있는지 알려줌 Object peek() - 스택의 맨 위에 저장된 객체 반환 - pop()과 달리 스택에서 객체를 꺼내지는 않음(비었을 때는 EmptyStackException 발생) Object pop() 스택의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStackException 발생) Object push(Object item) 스택에 객체(item)저장 int search(Object o).. 더보기
Java 컬렉션 프레임워크(collections framework) 1. 컬렉션 프레임워크(collections framework) 1) 컬렉션(collection) - 여러 객체(데이터)를 모아 놓은 것 2) 프레임워크(framework) - 표준화, 정형화된 체계적인 프로그래밍 방식 3) 컬렉션 프레임워크(collections framework) - 컬렉션(다수의 객체=데이터)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공 - java.util 패키지에 포함(JDK1.2부터 제공) 2. 컬렉션 프레임워크의 핵심 인터페이스 인터페이스 특징 List - 순서가 있는 데이터 집합 - 중복 허용 - 예시: 대기자 명단 구현 클래스: ArrayList, LinkedList, Stack, Vector Set - 순서가 없는 .. 더보기
Java 형식화 클래스 DecimalFormat, SimpleDateFormat java.text패키지의 DecimalFormat(10진수 형식화), SimpleDateFormat(날짜 형식화) 1. DecimalFormat() - 10진수(숫자)를 원하는 형식으로 쉽게 출력 가능(10진수 -> 형식 문자열) double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); // 지수형식 String result = df.format(number); // result = "1.2E6" - 형식 문자열에서 10진수(숫자)를 뽑아내는 기능(형식 문자열 -> 10진수) DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,234,567.89".. 더보기
Java 날짜와 시간, Calendar 클래스 1. 날짜와 시간 1) java.util.Date 날짜와 시간을 다룰 목적으로 만들어진 클래스(1995년 말, JDK 1.0) Date의 메서드는 거의 deprecated 되었지만 여전히 쓰이고 있음(뿌리가 깊다보니..) 2) java.util.Calendar Date클래스를 개선한 새로운 클래스(1997년 JDK 1.1)이지만 여전히 단점 존재 3) java.time패키지 Date와 Calender의 단점을 개선한 새로운 클래스 제공(2014년 JDK 1.8) - Date와 Calender는 날짜와 시간이 묶여서 처리되고, 불변되는 등의 여러가지 단점을 개선하였음 👉🏻 단점이 있음에도 불구하고 오랜기간 사용되어왔기 때문에 Date와 Calendar 알아두는 정도로 공부 2. Calendar 클래스 - .. 더보기
Java Number클래스 모든 숫자 래퍼 클래스의 조상 class Ex9_15 { public static void main(String[] args) { inti = new Integer("100").intValue(); inti2 = Integer.parseInt("100"); Integer i3 = Integer.valueOf("100"); int i4 = Integer.parseInt("100",2); int i5 = Integer.parseInt("100",8); int i6 = Integer.parseInt("100",16); int i7 = Integer.parseInt("FF", 16); //int i8 = Integer.parseInt("FF"); // NumberFormatException 발생 Integer .. 더보기