데이터 구조의 집합 프레임 워 크
4162 단어 데이터 구조
일반적으로 이원 조 를 사용 하여 B = (K, R), B 는 데이터 구조 로 데이터 요소 의 집합 K 와 K 상의 이원 관계 의 집합 R 로 구성 된다.가운데:
K={ki|i>=1&&i<=n,n>=0}
R={rj|j>=1&&j<=m,m>=0}
ki (rj) 는 K (R) 의 i (j) 개 데이터 요 소 를 집합 하고 n (m) 은 K (R) 의 데이터 요소 의 개수 입 니 다.
집합 구조: n! =0, m = 0 시 데이터 구 조 는 집합 구조 이 고 이때 데이터 구조 에는 요소 의 집합 만 존재 하 며 관계 가 있 는 집합 은 존재 하지 않 는 다.
선형 구조: 요소 간 에 일대일 관계 가 존재 하 는 것 을 선형 구조 라 고 한다.일반적인 유형: 배열, 대기 열, 링크, 스 택.
트 리 구조: 요소 간 에 한 쌍 이상 의 관계 가 존재 하 는 것 을 트 리 구조 라 고 한다.흔 한 유형: 나무 (예: 하프 만 나무)
도형 구조: 요소 간 에 여러 쌍 의 관계 가 존재 하 는 것 을 도형 구조 라 고 한다.
여기 서 일단 집합 틀 을 말씀 드릴 게 요.
자주 사용 하 는 집합 은 세 가지 가 있다.
1. Set (집합) 은 무질서 하고 중복 이 불가능 한 것 이 특징 이 며 Collection 인 터 페 이 스 를 계승 했다.
set 인터페이스 에서 자주 사용 하 는 하위 클래스: HashSet ,TreeSet
HashSet 을 예 로 들 면
public void testSet(){
HashSet<String> set = new HashSet<String>();
//
for(int i=0; i < 10; i++){
String s = "str"+i;
set.add(s);
}
// ,
Iterator<String> it = set.iterator();
while(it.hasNext()){
//
String str = it.next();
System.out.println(str);
}
// for
for(String s : set){
System.out.println(s);
}
set.remove("");//
set.contains("");//
set.clear();//
set.isEmpty();// true
}
2. List (목록: 배열 과 벡터, 링크, 스 택, 대기 열) 는 중복 가능 한 것 이 특징 이 고 대상 은 선형 이다. 방식 저장, 특정 순서 없 이 시작 과 끝 만 있 고 Collection 인 터 페 이 스 를 계승 합 니 다.
List 인터페이스 에서 자주 사용 하 는 하위 클래스: ArrayList, LinkedList, Vector
Array List 를 예 로 들 면
public void testList(){
// ,
ArrayList<String> list = new ArrayList<String>();
// 10
for(int i=0; i<10; i++){
list.add("str"+i);
}
//
String s = list.remove(5);
System.out.println(" :"+s);
list.add(2, " ");
// ,
int pos = list.indexOf("str3");
System.out.println(" :"+pos);
//
list.set(1, "1111");
//
for(int i=0; i<list.size(); i++){
String str = list.get(i);
System.out.println(str);
}
//
for(String ss : list){
System.out.println(ss);
}
}
3. Map (맵), 두 개의 대상 을 저장 하고 key 와 value, 둘 다 대응 합 니 다.
Map 인터페이스 에서 자주 사용 하 는 하위 클래스: HashMap, HashTable, TreeMap
하 샤 맵 을 예 로 들 면
public void testMap(){
HashMap<String, String> map = new HashMap<String, String>();
// ,value
map.put("111", " ");
map.put("222", " ");
map.put("111", " ");
// key , value
map.remove("111");
// key value
String name = map.get("222");
System.out.println(name);
// 1, value
Set<String> keySet = map.keySet();
for(String key : keySet){
System.out.println("key="+key);
System.out.println("value="+map.get(key));
}
// 2, value
Set<Entry<String,String>> entrySet = map.entrySet();
for(Entry<String,String> entry : entrySet){
System.out.println("key="+entry.getKey());
System.out.println("value="+entry.getValue());
}
// 3, value
Collection<String> values = map.values();
for(String value : values){
System.out.println("value="+value);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.