디렉터리:
ArrayList 순차 일반 컨테이너
HashSet 컬렉션 컨테이너
HashMap
Java를 사용하여 메모장의 기능을 구현합니다. 먼저 메모장에 필요한 기능을 나열하세요.
레코드(문자열)를 추가할 수 있습니다.
레코드 수를 가져올 수 있습니다.
는 지정된 수의 레코드를 가져올 수 있습니다.
은 모든 레코드를 나열할 수 있습니다.
이 메모장이 대규모 프로그램의 일부인 경우, 즉 상위 프로그램이 있는 경우 상위 프로그램은 이 메모장에 위에 나열된 데이터 중 일부를 호출할 수 있습니다.
그래서 우리는 이 메모장의 인터페이스 위에 나열된 함수를 호출합니다.
그런 다음 이러한 인터페이스를 호출하는 것은 Notepad 클래스의 공개 함수(메서드)를 통해 이루어집니다.
그런데 어떻게 녹음을 하게 될까요? 분명히 기록된 문자열은 배열의 길이가 미리 설정되어 있기 때문에 배열에 기록될 수 없습니다. 이때 일반 컨테이너 Arraylist
가 사용됩니다. 이 arraylist도 시스템의 클래스이므로 사용 시 새 객체를 정의해야 합니다. private Arraylist Notes = new Arraylist( ) ; 또한 import java.util.ArrayList;
arraylist의 기본 작업: Arraylist
Notesnotes.size()
notes.remove(index)
notes.get(index)
notes.toArray(String[] a=new String[notes.size()])
위의 작업을 통해 메모장은 실현된 인터페이스 기능.
실행:
또한 컨테이너 유형에는 클래스이기도 한 HashSet과 같은 컬렉션 컨테이너(Set)도 포함되며 그 특징은 다음과 같습니다. 내부 요소는 정렬되지 않으며 중복 요소를 가질 수 없습니다. 수학의 집합과 동일한 개념입니다.
프로그램 실행 결과를 보면 두 컨테이너 ArrayList와 HashSet의 차이점을 확인할 수 있습니다.
참고: 프로그램에서 두 컨테이너의 출력이 더 이상 컨테이너의 각 요소를 다른 배열에 할당하지 않고 각 루프에 대해 배열의 각 요소를 출력하는 것을 볼 수 있습니다. 여기서는 컨테이너 객체를 직접 인쇄합니다. 괜찮습니다. 그 이유는 다음과 같습니다. {
첫 번째 빨간색 상자에 표시된 것처럼 클래스에 "public String toString() {}" 함수가 있는 경우 이 클래스의 객체 이름을 직접 인쇄할 수 있으며 두 번째 빨간색 상자에 표시된 대로 toString 함수가 자동으로 호출됩니다. 따라서 ArrayList와 HashSet의 두 Public 클래스 소스 파일에는 "public String toString() {}"과 유사한 함수가 있을 것으로 추측됩니다.
}
------------------------- --- ---------------------------------- --- --
HashMap 컨테이너: HashMap