java 집합 프레임워크 상세
자바 SE는 하나의 클래스와 인터페이스로 구성된 자바 집합 프레임워크(java Collection Framework, 약칭 JCF)를 포함하는데 그 주요 기능은 저장된 데이터를 특정한 구조로 조직하고 특정한 방식으로 이 데이터에 접근하는 것이다. 그 목표는 처리 대상 집합의 일반적인 프레임워크를 제공하여 프로그래머가 서로 다른 대상 집합을 처리할 때의 인코딩량을 줄이는 것이다.
집합 클래스의 일부 차이점은 중복 요소 동작을 지원하는지 여부뿐만 아니라, 요소가 순서가 있는지, 그리고 null 요소를 추가할 수 있는지도 포함한다.자바 집합 프레임워크에서 이 세 가지 차이에 따라 대상의 저장 방식을 세 가지 유형으로 나눈다. 각각 다음과 같다.
Collection 인터페이스에서 Collection 객체의 공통된 기본 방법을 정의합니다.
방법
묘사
int size()
현재 집합에 포함된 요소 개수를 되돌려줍니다.
isEmpyt()
집합에 원소가 함유되어 있는지 판단하다
boolean contains(Objact o)
집합에 특정한 원소가 함유되어 있는지 판단하다
add(Objact o)
컬렉션에 요소 추가
remove(Objact o)
컬렉션에서 요소 제거
Iterator iterator()
컬렉션의 각 요소에 접근하기 위해 역행기를 되돌려줍니다.
Iterator 인터페이스는 컬렉션을 반복하는 데 사용되는 인터페이스입니다.
Iterator 인터페이스의 방법
방법
묘사
hasNext()
만약 집합에 더 많은 요소가 있다면, 이 방법은true로 되돌아갑니다
next()
집합의 다음 요소 되돌리기
remove()
Iterator가 반환하는 마지막 요소 삭제
1. List 커넥터
List 인터페이스는 Collection 인터페이스에서 상속되며 다음과 같은 특징이 있습니다.
1).ArrayList
프로그램 인스턴스:
package lei;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(1);
list.add("zhangsan");
list.add(false);
list.add('a');
list.add(0, "lisi");
list.add(1);
list.remove(1);
list.remove(2);
list.set(0, "wangwu");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
Object 클래스가 정의한 equals () 방법은 이 방법에 전달된 대상과 이 방법을 호출한 대상이 같은 대상일 때true로 되돌아옵니다.equals () 를 다시 쓰는 방법을 통해 같은 상태를 가진 두 대상을 같은 대상으로 간주할 수 있다.2).LinkedList
방법
묘사
void addFirst
체인 테이블 시작 부분에 객체 추가
void addLast
체인 테이블 끝에 객체 추가
getFirst()
체인 테이블의 첫 번째 요소 되돌리기
getLast()
체인 테이블의 마지막 요소 되돌리기
removeFirst()
체인 테이블의 첫 번째 요소 삭제
removeLast()
체인 테이블의 마지막 요소 삭제
프로그램 인스턴스:
package lei;
import java.util.LinkedList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
LinkedList l=new LinkedList<>();
l.add("zhangsan");
l.add("lisi");
l.addFirst(1);
l.addLast(4);
System.out.println(l.getFirst());
System.out.println(l.getLast());
l.removeFirst();
l.removeLast();
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
}
}
LinkedList 및 ArrayList 선택만약 목록에 빠른 접근이 필요하지만 요소의 삽입과 삭제 작업을 자주 하지 않는다면 ArrayList를 선택하는 것이 좋습니다.하면, 만약, 만약...목록을 자주 삽입하고 삭제하려면 LinkedList를 선택해야 합니다.
2.set 인터페이스
set 인터페이스는 Collectiion 인터페이스에서 계승되며, Collection 인터페이스의 모든 방법을 계승합니다.set 인터페이스는 다음과 같은 특징을 가지고 있다.
1).Hashset
Hashset 클래스는 해시 알고리즘을 바탕으로 하는 Set 인터페이스로 이루어진 것으로 주로 다음과 같은 몇 가지 특징이 있다.
프로그램 인스턴스:
package lei;
import java.util.HashSet;
import java.util.Set;
public class Test4 {
public static void main(String[] args) {
Set<String> set=new HashSet<String>();
set.add("zhangsan");
set.add("lisi");
for(String s:set){
System.out.println(s);
}
}
}
2).TreeSetTreeSet 클래스는 클래스 Set 인터페이스뿐만 아니라SortedSet 인터페이스도 실현하여 집합 중의 대상이 일정한 순서에 따라 정렬되는 것을 보장한다.TreeSet 컬렉션에 객체를 추가하면 순서가 지정된 객체 시퀀스에 삽입되지만 이러한 정렬은 객체가 추가된 순서에 따라 정렬되는 것이 아니라 일정한 알고리즘에 따라 정렬됩니다.
TreeSet은 요소의 자연 순서를 사용하여 요소를 정렬하거나 Set을 생성할 때 제공되는 Comparator에 따라 정렬합니다.TreeSet은 자연 정렬과 사용자 정의 정렬 두 가지 정렬 방식을 지원합니다.
3. Map 인터페이스
맵 인터페이스는 자바 집합 프레임워크에서 Collection 인터페이스와 다른 또 다른 중요한 인터페이스로 키(Key)에서 값(Value)까지의 대응 관계의 집합에 대응한다.맵 유형의 객체 컨테이너에는 두 개의 객체가 저장되어 있으며 한 객체는 맵의 키를 저장하고 다른 객체는 Value를 저장합니다.Key 및 Value는 모든 참조 유형의 데이터를 업그레이드할 수 있습니다.키는 반복할 수 없지만 Value는 반복할 수 있습니다.
1).HashMap
HashMap은 해시 알고리즘을 기반으로 한 Map 인터페이스의 실현이다.HashMap은 키를 해시 테이블에 저장하여 유지보수합니다. 키는 유일합니다.단, HashMap은 키가 특정 순서로 배열되는 것을 보장하지 않으며, 특히 순서가 영원히 변하지 않는다는 것을 보장하지 않는다.
HashMap 클래스는 맵 인터페이스를 실현하여 맵 인터페이스의 모든 방법을 갖추고 있다.
package day1228;
import java.util.*;
public class HashMapDemo {
public static void main(String[] args) {
// HashMap
Map<String, String> map = new HashMap<String, String>();
map.put("a1", "xiao");
map.put("b2", "xiaol");
map.put("a4", "xiaosd");
map.put("b1", "12a");
map.put("a3", "1");
// iterator
System.out.println(" Map :");
Set<String> keys = map.keySet();
for (Iterator<String> i = keys.iterator(); i.hasNext();) {
String key = i.next();
String value = map.get(key);
System.out.println(key + "=" + value);
}
// "a4"
System.out.println("
a4 ");
map.remove("a4");
// // iterator
System.out.println("
Map :");
keys = map.keySet();
for (Iterator<String> i = keys.iterator(); i.hasNext();) {
String key = i.next();
String value = map.get(key);
System.out.println(key + "=" + value);
}
}
}
2).TreeMapTreeMap 클래스는 레드 블랙 트리 알고리즘을 기반으로 한 Map 인터페이스로 이루어집니다.TreeMap의 키 저장 방식은 TreeSet과 비슷합니다. 키를 트리에 저장하고 키의 순서는 자연 순서나 사용자 정의 순서 두 가지 방식으로 배열합니다.
프로그램 인스턴스:
package day1228;
import java.util.*;
public class TreeMapDemo {
public static void main(String[] args) {
// TreeMap
Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
// iterator
System.out.println(" map :");
Set<Integer> keys=map.keySet();
for(Object key:keys){
String value=map.get(key);
System.out.println(key+"="+value);
}
// 3
System.out.println("
3 ");
map.remove(3);
// iterator
System.out.println("
Map :");
for(Object key:keys){
String value=map.get(key);
System.out.println(key+"="+value);
}
}
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.