Programming 65

11-7 ArrayList

- ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일하다.ArrayList와 달리 Vector는 자체적으로 동기화처리가 되어있다.- List인터페이스를 구현하므로, 저장순서가 유지되고 중복을 허용한다.- 데이터의 저장공간으로 배열을 사용한다.(배열기반) ArrayList의 메서드추가- boolean add(Object o): 추가- void add(int index, Object element): 저장위치 정해서 저장- boolean addAll(Collection c): 컬렉션이 가지고 있는 요소를 그대로 저장- boolean addAll(int index, Collection c): 위치 정해서 컬렉션이 가지고 있는 요소 저장 삭제-boolean remove(Objec..

11-1 컬렉션 프레임웍

▶ 컬렉션- 여러 객체(데이터)를 모아 놓은 것을 의미 ▶프레임웍- 표준화, 정형화 된 체계적인 프로그래밍 방식 컬렉션 프레임웍의 핵심 인터페이스List, Set, Map인터페이스특징List순서가 있는 데이터의 집합. 중복을 허용한다.ex) 대기자 명단 구현 클래스: ArrayList, LinkedList, Stack, Vector 등Set순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다.ex) 양의 정수의 집합, 소수의 집합 구현 클래스: HashSet, TreeSet 등Map키(key)와 값(pair)의 쌍으로 이루어진 데이터의 집합순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 하용한다. ex) 우편번호, 지역번호HashMap, TreeMap, Hashtable..

9-25 래퍼(wrapper)클래스 / Number클래스

래퍼(wrapper)클래스- 기본형을 객체로 다뤄야할 때 사용하는 클래스 기본형은 성능문제 때문에 넣게 됐다. Number클래스- 모든 숫자 래퍼 클래스들의 조상  문자열을 숫자로 변환하기-문자열을 숫자로 변환하는 다양한 방법문자열 -> 기본형문자열 -> 래퍼클래스 오토박싱 & 언박싱오토박싱: 기본형을 감싸서 래퍼클래스로 만들어주는 것언박싱: 래퍼클래스를 감싸서 기본형으로 만들어주는 것 - 기본형의 값을 객체로 자동변환하는것을 오토박싱, 그 반대는 언박싱

9-22 Math클래스

- 수학관련 static메서드의 집합 - round()로 원하는 소수점 아래 세 번째 자리에서 반올림하기1. 원래 값에 100을 곱한다.2. 위의 결과에 Math.round()를 사용한다.3. 위의 결과를 다시 100.0으로 나눈다 메서드 / 설명예제결과 static double abs(double a)static float abs(float f) static int abs(int f) static long abs(long f)int i = Math.abs(-10);double d = Math.abs(-10.0);i = 10d = 10.0주어진 값의 절대값을 반환한다.static double ceil(double a)double d = Math.ceil(10.1);d = 11.0주어진 값을 올림하여 반환..

9-15 StringBuffer클래스 / StringBuilder

- String처럼 문자형 배열(char[ ])을 내부적으로 가지고 있다.문자를 가지고 조작(변경, 추가...)을 많이 해야할 때는 내용 변경이 가능한 StringBuffer를 사용하는게 좋다 StringBuffer의 생성자-배열은 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야1. 새로운 배열 생성2. 내용복사3. 참조변경 - StringBuffer는 String과 달리 내용 변경이 가능하다.- append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환- StringBuffer는 equals()가 오버라이딩 되어있지 않다-> StringBuffer을 String으로 변환 후에 equals()로 비교해야 한다.String s = sb.toString()..

9-12, 13 join()과 StringJoiner / 문자열과 기본형 간의 변환

join()과 StringJoiner- join()은 여러 문자열 사이에 구분자를 넣어서 결합한다. 문자열과 기본형 간의 변환 - 숫자를 문자열로 바꾸는 방법int i = 100;String str1 = i + ""; // 100을 "100"으로 변환하는 방법1 --편리String str2 = String.valueOf(i) // 100을 "100"으로 변환하는 방법2 -- 속도 빠름 문자열을 숫자로 바꾸는 방법int i = Integer.parseInt("100"); // "100"을 100으로 변환하는 방법1int i2 = Integer.valueOf("100"); // "100"을 100으로 변환하는 방법2Integer i2 = Integer.valueOf("100"); // 원래는 반환타입이 In..

9-11 String클래스의 생성자와 메서드

메서드 / 설명예 제결 과String(String s)String s = new String("Hello");s = "Hello"주어진 문자열(s)을 갖는 String 인스턴스를 생성한다. String(char[ ] value)char[ ] c = {'H', 'e', 'l', 'l', 'o'};String s = new String(c);s = "Hello"주어진 문자열(value)을 갖는 String 인스턴스를 생성한다.String(StringBuffer buf)StringBuffer sb = new StringBuffer("Hello");String s = new String(sb)s = "Hello"StringBuffer인스턴스가 갖고 있는 문자열과 같은 내용이 String인스턴스를 생성한다.cha..

9-7 String클래스

-String 클래스 = 데이터(char[]) + 메서드(문자열 관련)public final class String implements java.io.Serializable, Comparable {        private char[ ] value;} - 내용을 변경할 수 없는 불변(immutable) 클래스- 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐.  문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용 문자열의 비교- String str = "abc"; 와 String str = new String("abc"); 의 비교String str1 = "abc"; // 문자열 리터럴 "abc"의 주소가 str1에 저장됨String str2 = "abc"; // ..

9-1 Object 클래스

- 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다.- notify(), wait() 등은 쓰레드와 관련된 메서드이다.  equals (Object obj)-객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false.-Object클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)-인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩 해야한다. hashCode()- 객체의 해시코드(hash code)를 반환하는 메서드- Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환- equals()를 오버라이딩 하면, hashCode()도 오버라이딩해야 한다.자바의 Object 클래스에서는 **equals()**..

8-15 예외 + (사용자 정의 예외, 예외 되던지기, 연결된 예외)

사용자 정의 예외 만들기- 우리가 직접 예외 클래스를 정의할 수 있다.- 조상은 Exception과 RuntimeException중에서 선택 class MyException extends Exception {        MyException(String msg) { // 문자열을 매개변수로 받는 생성자                super(msg); // 조상인 Exception클래스의 생성자를 호출한다.        }} 예외 되던지기 (re-throwing)- 예외를 처리한 후에 다시 예외를 발생시키는 것- 호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하는 것 연결된 예외 (chained exception)- 한 예외가 다른 예외를 발생시킬 수 있다.-  예외 A가 예외 B를 발생시키면, A..