분류 전체보기213 제네릭과 배열 제네릭에서 배열의 제한GStack[] gs = new GStack[10]; //컴파일 오류T[] a = new T[10]; //컴파일 오류- 제네릭 클래스 또는 인터페이스 타입의 배열 선언 불가- 제네릭 타입 배열 허용하지 않음return (T)stck[tos]; //예제 7-9 참고- 제네릭 타입 배열 불가하므로 타입 매개변수 T로 강제 캐스팅- 예제 7-9에서는 Object 타입으로 배열 생성 후 타입 캐스팅함public void myArray(T[] a) { ... }- 제네릭 타입 배열 선언 허용제네릭 메소드- 클래스의 일부 메소드만 제네릭으로 구현 가능class GenericMethodEx{ static void toStack(T[] a, GStack gs){ for(int i=0; i.. 2024. 6. 10. 제네릭 만들기 제네릭 클래스 작성- 기존의 클래스 작성 방법과 유사하게 작성- 클래스 이름 다음 사이에 일반화된 타입 매개변수 추가public class MyClass{ T val; //T 타입 변수 val void set(T a){ val = a; } T get(){ return val; }} 제네릭 클래스에 대한 레퍼런스 변수 선언- 타입 매개변수에 구체적인 타입 작성MyClass s; //를 String으로 구체화List li; //를 Integer로 구체화Vector vs; //를 String으로 구체화 제네릭 객체 생성: 구체화(specialization)- 제네릭 타입 클래스에 구체적인 타입을 대입하여 객체 생성- 컴파일러에 의해 이루어짐- 제네릭 구체화에 기본 타입 사.. 2024. 6. 10. LinkedList<E> 클래스 LinkedList- java.util.LinkedList- List 인터페이스를 구현한 컬렉션 클래스- Vector, ArrayList 클래스와 유사하게 작동- 맨 앞과 맨 뒤를 가리키는 head, tail 레퍼런스- 인덱스를 이용하여 요소에 접근 가능LinkedList l = new LinkedList();Collections 클래스- java.util 패키지에 포함- 컬렉션을 다루는 여러 메소드 지원sort(): 컬렉션에 포함된 요소들 정렬reverse(): 요소를 반대 순으로 정렬max(), min(): 요소들의 최댓값과 최솟값 찾아내기binarySearch(): 이진 검색- 컬렉션에 대해 연산을 수행하고 결과로 컬렉션 리턴- Collections 클래스의 모든 메소드는 static 타입이므로 C.. 2024. 6. 10. HashMap<K, V> 클래스 HashMap- java.util.HashMap- '키(key)'와 '값(value)'의 쌍으로 구성되는 요소를 다루는 컬렉션- K에는 '키'로 사용할 데이터 타입, V에는 '값'으로 사용할 데이터 타입 지정- 키와 값이 한 쌍으로 삽입- 키는 해시맵에 삽입되는 위치 결정에 사용- 값을 검색하기 위해서 키 이용HashMap h = new HashMap();//키와 값이 모두 String 타입인 해시맵 생성h.put("apple", "사과"); //"apple" 키와 "사과" 값의 쌍을 h에 삽입String kor = h.get("apple");//"apple" 키로 값 검색하여 검색된 값인 "사과"를 kor에 저장- put(key, value) 메소드는 키와 값을 받아 키를 이용하여 해시 함수를 실행하고.. 2024. 6. 9. Iterator<E> 인터페이스 Iterator 인터페이스- java.util- Vector, ArrayList, LinkedList가 상속받는 인터페이스- Vector, ArrayList, LinkedList, Set과 같이 요소가 순서대로 저장된 컬렉션에서 요소를 순차 검색할 때 사용Vector v = new Vector(); //요소가 Integer 타입인 벡터Iterator it = v.iterator(); //벡서 v의 요소를 순차 검색할 Iterator 객체 리턴- 벡터 v의 요소 타입(=Integer)에 맞추어 Integer의 E에 Integer를 지정- 벡터 v의 iterator()를 호출, v의 각 요소를 순차적으로 검색할 수 있는 반복자(Iterator 객체)while(it.hasNext()){ //it로 벡터의 끝까.. 2024. 6. 9. ArrayList<E> ArrayList의 특성 java.util.ArrayList- 에서 E 대신 요소로 사용할 특정 타입을 지정하여 구체화- 가변 크기의 배열을 구성한 클래스 ArrayList에 삽입 가능한 것- 객체- null- 기본 타입은 Wrapper 객체로 만들어 저장 ArrayList에 객체 삽입/삭제- 리스트의 맨 뒤에 객체 추가- 리스트의 중간에 객체 삽입- 임의의 위치에 있는 객체 삭제 가능 벡터와 달리 스레드 동기화 기능 없음- 다수의 스레드(멀티스레드)가 동시에 ArrayList에 접근할 때 동기화되지 않음- 개발자가 스레드 동기화 코드 작성 →ArrayList 클래스는 Vector 클래스와 거의 동일하지만 스레드 간 동기화를 지원하지 않으므로 ArrayList에 요소를 삽입하거나 삭제할 때 Array.. 2024. 6. 9. 이전 1 ··· 25 26 27 28 29 30 31 ··· 36 다음