자바 의 Set,List,Map 의 차이 점 에 대하 여 말씀 드 리 겠 습 니 다(1)
배열 은 크기 가 고정 되 어 있 고 같은 배열 은 같은 유형의 데이터(기본 형식/참조 형식)만 저장 할 수 있 으 며,JAVA 집합 은 작 동 수가 고정 되 지 않 은 데 이 터 를 저장 하고 저장 할 수 있 습 니 다. 모든 JAVA 집합 은 자바 util 가방 에 있 습 니 다! JAVA 집합 은 인용 형식의 데이터 만 저장 할 수 있 고 기본 데이터 형식 은 저장 할 수 없다.
JAVA 집합 은 주로 세 가지 유형 으로 나 뉜 다.
Set(집합)
목록(목록)
지도(매 핑)
Collection 인터페이스:Collection 은 가장 기본 적 인 집합 인터페이스 로 JAVA 집합(Set 와 List 만 포함)에 적용 되 는 일반적인 방법 을 밝 혔 다. Set 와 List 는 모두 Conllection,Map 을 계승 했다.
Collection 인터페이스 방법:
boolean add(Object o) :집합 에 대상 의 인용 을 추가 합 니 다.
void clear():집합 에 있 는 모든 대상 을 삭제 합 니 다.즉,이 대상 의 인용 을 가지 고 있 지 않 습 니 다.
boolean isEmpty() :집합 이 비어 있 는 지 아 닌 지 를 판단 하 다.
boolean contains(Object o):집합 에 특정 대상 의 인용 이 있 는 지 판단 합 니 다.
Iterartor iterator() :Iterator 대상 을 되 돌려 줍 니 다.집합 에 있 는 요 소 를 옮 겨 다 닐 수 있 습 니 다.
boolean remove(Object o):집합 에서 대상 의 인용 을 삭제 합 니 다.
int size() :집합 중인 원소 의 수 를 되 돌려 줍 니 다.
Object[] toArray() : 집합 에 있 는 모든 요 소 를 포함 하 는 배열 을 되 돌려 줍 니 다.
관련:Iterator()와 toArray()방법 은 모두 집합 에 사용 되 는 모든 요소 입 니 다.전 자 는 Iterator 대상 을 되 돌려 주 고 후 자 는 집합 에 있 는 모든 요 소 를 포함 하 는 배열 을 되 돌려 줍 니 다.
Iterator 인 터 페 이 스 는 다음 과 같은 방법 을 설명 합 니 다.
hasNext():집합 에 있 는 요소 가 옮 겨 다 니 는 지 여 부 를 판단 합 니 다.없 으 면 true 로 돌아 갑 니 다.
next():다음 요 소 를 되 돌려 줍 니 다.
reove():집합 에서 이전 next()방법 으로 되 돌아 온 요 소 를 삭제 합 니 다.
세트(집합): Set 는 가장 간단 한 집합 이다.집합 중인 대상 은 특정한 방식 으로 정렬 하지 않 고 중복 대상 이 없다.Set 인 터 페 이 스 는 주로 두 가지 실현 유형 을 실현 했다.
HashSet:HashSet 류 는 해시 알고리즘 에 따라 집합 중의 대상 을 액세스 하고 액세스 속도 가 비교적 빠르다.
4.567917.TreeSet:TreeSet 류 는 SortedSet 인 터 페 이 스 를 실현 하여 집합 중의 대상 을 정렬 할 수 있 습 니 다.
set 의 용법:대상 의 인용 을 저장 하고 중복 대상 이 없습니다.
Set set=new HashSet(); String s1=new String("hello"); String s2=s1; String s3=new String("world"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size());// 2。
Set 의 add()방법 은 대상 이 집합 에 저장 되 어 있 는 지 여 부 를 어떻게 판단 합 니까?
boolean isExists=false; Iterator iterator=set.iterator(); while(it.hasNext()) { String oldStr=it.next(); if(newStr.equals(oldStr)){ isExists=true; } }
List(목록):List 의 특징 은 요 소 를 선형 으로 저장 하고 집합 에 중복 대상 을 저장 할 수 있다 는 것 이다.
List 인터페이스 주요 구현 클래스:
List 의 무 작위 접근 에 있어 서 특정한 위치 에 있 는 요 소 를 무 작위 로 검색 하 는 것 입 니 다.List 의 get(int index)방법 은 집합 에서 매개 변수 index 가 지정 한 색인 위치 대상 을 되 돌려 주 고 아래 표 시 는'0'부터 시작 합 니 다.가장 기본 적 인 두 가지 검색 집합 중의 모든 대상 을 모 으 는 방법:
1:for 순환 과 get()방법:
for(int i=0; i
2: (Iterator):
Iterator it=list.iterator();
while(it.hashNext){
System.out.println(it.next);
}
Map( ):
Map , 。 Map Collection Map , , 。
Map :
1 , :
Object put(Object key, Object value):
Object remove(Object key): KEY
void putAll(Map t):
void clear():
2 :
Object get(Object key): key 。Map , , equals() false., 。
Conllections: 。Conllections JAVA
:
JAVA , , JAVA , , JDK , Map , , ,Conllections List /Map , 。
boolean containsKey(Object key): key
boolean containsValue(Object value): value
int size():
boolean isEmpty() :
List , 。Set , ( , Set, -- List)。Map , " " ,Map , 。 , LinkedHashSet LinkedHashMap.
List
Lis: ArrayList, , LinkedList, , 。List: List : 。List Collection , List ( LinkedList 。) List ListIterator, List, List 。
ArrayList: List。 , List 。ListIterator ArrayList, 。 LinkedList 。
LinkedList : , List 。 。( ArrayList 。) :addFirst(), addLast(), getFirst(), getLast(), removeFirst() removeLast(), ( ) LinkedList 、 。
Set
Set Collection , , List。 Set Collection, 。( : 。)Set ( )
Set : Set , Set 。 Set equals() 。Set Collection 。Set 。
HashSet: Set。 HashSet hashCode()。
TreeSet: Set, 。 Set 。
LinkedHashSet: HashSet , ( )。 Set , 。
Map
put(Object key, Object value) “ ”( ) “ ” “ ”(key)( )。 get(Object key) “ ” “ ”。 containsKey() containsValue() Map “ ” “ ”。 Java Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。 Map, 、 、 、 “ ” 。
Map 。 get() , ArrayList “ ” 。 HashMap 。HashMap , “ ”(hash code), 。“ ” “ ” int , 。 Java , hashCode() Object 。
HashMap hashCode() 。 。
Map : “ ” , “ ” “ ”
HashMap:Map 。 “ ” 。 capacity load factor, 。
LinkedHashMap: HashMap, , “ ” , (LRU) 。 HashMap 。 , 。
TreeMap : 。 “ ” “ ” , ( Comparabel Comparator )。TreeMap , 。TreeMap subMap() Map, 。
WeakHashMao : (weak key)Map,Map : 。 map “ ”, “ ” 。
IdentifyHashMap: : == equals() “ ” hash map。 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.