Map 인터페이스는 자료를 쌍으로 관리하는데 필요한 메서드가 정의되어있다. key-value 쌍으로 이루어진 객체의 key값은 유일하고 value 값은 중복될 수 있다. Map인터페이스를 구현한 클래스는 내부적으로 해시 알고리즘에 의해 구현되어 있다. 1. HashMap 클래스 HashMap은 Map 인터페이스를 구현한 클래스 중 가장 많이 사용한다. HashMap에서 자료를 관리하는 방식은 해시 방식이다. 서로 다른 key 값에 같은 해시값이 반환되는 충돌이 발생할 경우를 고려해 해시 테이블에 데이터를 꽉 채우지 않고 적정 수준이 되면 테이블을 확장해 충돌 발생 확률을 낮춘다. Map 인터페이스에서 사용하는 key 값은 중복될 수 없으므로 equals()와 hashcode() 메서드를 재정의하여 사용하..
1. HashSet 클래스 HashSet 클래스는 집합 자료 구조를 구현하며 중복을 허용하지 않는다. 1) 중복을 허용하지 않는다. 2) 순서가 없다. 실습 코드는 여기서 1. HashSet을 활용해 회원 관리 프로그램 구현하기 addMember(): HashSet에 회원 추가 removeMember(): 매개변수로 받은 id에 해당하는 회원을 HashSet에서 삭제 showAllMember(): HashSet의 모든 회원 출력 (주의) ArrayList에서는 ArrayList.get(i)를 이용해 i번째에 해당하는 항목을 삭제했지만, HashSet은 순서가 없으므로 해당 아이디를 가진 회원을 찾기위해 Iterator를 사용한다. boolean add(E o) 매개변수로 받은 객체가 HashSet에 없으..
List 인터페이스에는 객체를 순서에 따라 저장하고 유지하는데 필요한 메서드가 선언되어 있다. 자바에서 배열을 구현한 클래스는 ArrayList, Vector가 있고 배열과 구현 방식은 다르지만 순차 자료구조를 구현한 LinkedList가 있다. 1. ArrayList 클래스 ArrayList는 객체 배열을 구현한 클래스로 객체 순서를 기반으로 순차적으로 자료를 관리하는 프로그램을 구현할 때 사용한다. 1. ArrayList를 활용해 회원 관리 프로그램 구현하기 addMember() : 회원 추가 removeMember(): 회원 삭제 showAllMember(): 전체 회원 출력 2. MemberArrayList 테스트 클래스 구현하기 실습 코드는 여기서 2. ArrayList와 Vector 클래스 V..
1. 컬렉션 프레임워크란? 자료 구조는 프로그램 실행 중 메모리에 자료를 유지/관리하기 위해 사용한다. 자바에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하는데 이를 컬렉션 프레임워크라고 한다. 자바 컬렉션 프레임워크는 여러 인터페이스가 정의되어있고 그 인터페이스를 구현한 클래스가 있다. 컬렉션 프레임워크의 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다. 2. Collection 인터페이스 Collection 인터페이스는 하나의 자료를 모아서 관리하는데 필요한 기능을 제공한다. Collection 인터페이스 하위에 List 인터페이스와 Set 인터페이스가 있다. 1) List 인터페이스(순서O, 중복O) List를 구현한 클래스는 순차적인 ..
1. 제네릭이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것을 '제네릭(Generic) 프로그래밍' 이라고 한다. 2. 제네릭의 필요성 어떤 변수가 여러 참조 자료형을 사용할 수 있도록 Object 클래스를 사용하면 다시 원래 자료형으로 반환해 주기 위해 매번 형 변환을 해야하는 번거로움이 있다. Public class ThreeDPrinter{ private Object material; public void setMaterial(Object material) { this.material = material; } public Object getMaterial() { return material; } } ThreeDPrinter printer = new ..
1. Class 클래스란? 자바의 모든 클래스와 인터페이스는 컴파일 후에 class 파일로 생성되고 파일에 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 담겨있다. Class 클래스는 컴파일된 calss 파일에 저장된 클래스나 인터페이스의 정보를 가져오는데 사용한다. 모르는 클래스의 정보를 사용할 경우에 Class 클래스를 활용해 클래스 정보를 직접 찾는다. 1번 방식은 이미 생성된 인스턴스가 있어야하고 2, 3번 방식은 컴파일된 클래스 파일이 있다면 클래스 이름만으로 Class 클래스를 반환받는다. 1. Object 클래스의 getClass() 메서드 사용하기 String s = new String(); Class c = s.getClass(); 2. 클래스 파일 이름을 Class 변수..
1. 기본 자료형을 위한 클래스 Wrapper 클래스는 기본 타입의 데이터를 객체로 표현하기 위해 포장해주는 클래스이다. 예를 들어, 매개변수가 객체거나 반환 값이 객체인 경우 기본 타입을 객체형으로 사용해야 한다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 2. Integer 클래스 사용하기 Integer 클래스는 int 자료형을 감싼 클래스다. Integer 클래스의 생성자는 매개변수로 정수 혹은 문자열을 받는 경우 2가지가 있다. Integer 클래스는 final 멤버 변수로 기본 자료형 int를 갖고 있고 int 값을 객체로 활용할 ..
1. String을 선언하는 2가지 방법 자바는 문자열을 사용하도록 String 클래스를 제공하는데 String을 사용하는 2가지 방식이 있다. 1. 문자열을 생성자의 매개 변수로 하여 생성하는 방식 new 예약어를 사용해 객체를 생성하는 방식은 문자열을 위한 힙 메모리가 할당되고 새로운 객체가 생성된다. String str1 = new String("abc"); 2. 이미 생성된 문자열 상수를 가리키는 방식 String 변수가 기존에 만들어져있던 문자열 상수의 메모리 주소를 가리킨다. 프로그램에서 사용되는 상수 값을 저장하는 공간을 상수 풀이라고 한다. String str2 = "test"; String str3 = "test"; 2. String 클래스의 final char[] 변수 자바는 Strin..