자바 바 텀 은 이 진 검색 트 리 를 기반 으로 집합 과 맵/집합 세트 기능 에 대한 상세 한 설명 을 실현 합 니 다.
4485 단어 Java두 갈래 검색 트 리
앞에서 말 했 듯 이 5 장의 시리즈 학습 에서 이 진 트 리 에 관 한 조작 을 실 현 했 으 니 5 장 을 자세히 보면 된다.이 절 에서 밑바닥 을 배 우 는 데 중심 을 두 는 것 은 우리 가 이미 봉 인 된 이 진 트 리 관련 조작 으로 기본 적 인 집합
set
이라는 데이터 구 조 를 실현 하 는 것 이다.집합
set
의 특성:집합
Set
에 저 장 된 요 소 는 무질서 하고 중복 할 수 없다.이런 특성 을 달성 하기 위해 서 는 지탱 할 수 있 는 바 텀 데이터 구 조 를 찾 아야 한다.이전에 실 현 된 이 진 트 리 를 선택 하 십시오.이 이 진 트 리 는 중복 요 소 를 넣 을 수 없 기 때 문 입 니 다.따라서 우 리 는 이 진 트 리 라 는 밑바닥 을 수색 하여 집합
set
을 실현 할 수 있다.1.집합
set
관련 기능1.1 add()방법 특성
2 분 검색 트 리 추가 작업 add:중복 요 소 를 넣 을 수 없습니다.
2.set 응용
전형 적 인 응용:1.고객 통계 2.어 휘 량 통계
3.집합 실현
3.1 인터페이스 정의 설정
/**
*
*/
public interface Set<E> {
void add(E e);// <――<
void remove(E e);//
int getSize();//
boolean isEmpty();//
boolean contains(E e);//
}
3.2 2 분 검색 트 리 기반 집합Set
// BST Set
public class BSTSet<E extends Comparable<E>> implements Set<E> {// E
// BST
private BST<E> bst;
//
public BSTSet() {
bst = new BST<>();
}
//
@Override
public int getSize() {
return bst.size();
}
//
@Override
public boolean isEmpty() {
return bst.isEmpty();
}
//Set
@Override
public void add(E e) {
bst.add(e);
}
//
@Override
public boolean contains(E e) {
return bst.contains(e);
}
//
@Override
public void remove(E e) {
bst.remove(e);
}
}
3.3 테스트:두 명작 의 어 휘 량 과 중복 되 지 않 는 어 휘 량
public static void main(String[] args) {
System.out.println("Pride and Prejudice");
// ArrayList
ArrayList<String> words1=new ArrayList<>();
// word1
FileOperation.readFile("pride-and-prejudice.txt",words1);
System.out.println("Total words : "+words1.size());
BSTSet<String> set1=new BSTSet<>();
// for , word words
// ArrayList words1 word
for(String word:words1)
set1.add(word);//
System.out.println("Total different words : "+set1.getSize());
System.out.println("-------------------");
System.out.println("Pride and Prejudice");
// ArrayList
ArrayList<String> words2=new ArrayList<>();
// word1
FileOperation.readFile("a-tale-of-two-cities.txt",words2);
System.out.println("Total words : "+words2.size());
BSTSet<String> set2=new BSTSet<>();
// for , word words
// ArrayList words1 word
for(String word:words2)
set2.add(word);//
System.out.println("Total different words : "+set2.getSize());
}
결과:여기 서 설명 할 필요 가 있 는 것 은 우리 가 통계 한 단어 수 는 각 단어 로 구 성 된 것 만 고려 하고 단어의 특수 한 형식 을 구분 하지 않 았 다 는 것 이다.
다음 소절 에서 계속 공부 합 니 다.
원본 주소 https://github.com/FelixBin/dataStructure/tree/master/src/SetPart
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.자바 데이터 구조 및 알고리즘 튜 토리 얼,자바 조작 DOM 노드 기술 총화,자바 파일 과 디 렉 터 리 작업 기법 집합과자바 캐 시 작업 기법 집합
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.