목차
JAVA에서 일반적으로 사용되는 데이터 구조(java.util.) " >JAVA에서 일반적으로 사용되는 데이터 구조(java.util.)
와 대략 동일합니다.)
all을 가질 수 있습니다. 목록에는 [tom,null,1]" >all을 가질 수 있습니다. 목록에는 [tom,null,1]
7、HashSet" >7、HashSet
-------------Map------
1、HashMap" >1、HashMap
2、TreeMap" >2、TreeMap
Java java지도 시간 Java에서 일반적으로 사용되는 여러 데이터 구조를 요약하고 공유합니다.

Java에서 일반적으로 사용되는 여러 데이터 구조를 요약하고 공유합니다.

Aug 01, 2017 am 10:54 AM
java 여러 종류 일반적으로 사용되는

JAVA에서 일반적으로 사용되는 데이터 구조(java.util.)

Java에는 일반적으로 사용되는 여러 데이터 구조가 있으며 주로 컬렉션과 맵의 두 가지 주요 인터페이스로 나뉩니다. 인터페이스는 메소드만 제공하고 메소드를 제공하지 않습니다. 구현 제공), 프로그램에서 궁극적으로 사용되는 데이터 구조는 이러한 인터페이스에서 상속된 데이터 구조 클래스입니다. 주요 관계(상속 관계)는 다음과 같습니다. (자세한 내용은 Java api 문서를 참조하세요!)

Collection--->Collection                                                                                     지도---->SortedMap------> ;TreeMap

Collection---->List---->(벡터 ArryList LinkedList)                                                  

Collection ---->설정-- ---->(HashSet LinkedHashSet SortedSet)

----컬렉션----------------

1.컬렉션

API ----이 클래스는 컬렉션에 대해 작동하거나 컬렉션을 반환하는 정적 메서드로만 구성됩니다. 여기에는 컬렉션에 대해 작동하는 다형성 알고리즘, 지정된 컬렉션이 지원하는 새 컬렉션을 반환하는 "래퍼" 및 기타 몇 가지가 포함되어 있습니다.

이 클래스의 메서드는 제공된 컬렉션이나 클래스 개체가 null인 경우 모두

NullPointerException을 발생시킵니다.

2、List

API----이 클래스는 작동하는 정적 메서드로만 구성됩니다. 컬렉션에 대해 작동하거나 컬렉션을 반환하는 다형성 알고리즘, 지정된 컬렉션이 지원하는 새 컬렉션을 반환하는 "래퍼" 및 기타 몇 가지 확률이 포함되어 있습니다.

이 클래스의 메서드는 제공된 컬렉션이나 클래스 개체가 null인 경우 모두

NullPointerException을 발생시킵니다.

List는 순서가 지정된 컬렉션입니다. 이 인터페이스를 사용하면 각 요소 위치의 삽입을 정확하게 제어할 수 있습니다. . 사용자는 인덱스(배열 첨자와 유사한 목록의 요소 위치)를 사용하여 목록의 요소에 액세스할 수 있으며 이는 Java 배열과 유사합니다.

3、Vector

API------ 는 우리가 사용하기 편리한 몇 가지 기능을 가지고 있으므로 의 한계를 피하기 어렵습니다. 어레이와 그 성능은 어레이를 능가할 수 없습니다. 그러므로 가능하다면 배열을 더 많이 사용해야 합니다. 또 다른 매우 중요한 점은 Vector가 스레드 동기화(동기화)된다는 점입니다. 이것이 Vector 및 ArrayList가 사용되는 이유입니다. 중요한 차이점. Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. However, the size of aVector can grow or shrink as needed to accommodate adding and removing items after theVector


4、ArrayList
API ----

List

인터페이스를 구현하는 List 인터페이스의 크기 조정 가능한 배열 구현. 이 클래스는 조작하는 메서드를 제공합니다. 목록을 저장하기 위해 내부적으로 사용되는 배열의 크기(이 클래스는 비동기화된다는 점을 제외하면

Vector

와 대략 동일합니다.)

Vector와 동일하게 배열 기반의 Linked List이지만 차이점은 ArrayList가 동기화되지 않는다는 점입니다. 따라서 성능면에서는 벡터보다 우수하지만, 멀티스레드 환경에서 실행할 경우 스레드 동기화를 직접 관리해야 합니다. ㅋㅋㅋ 목록의 시작과 끝 부분에 있는 요소를 get,
remove

insert

이러한 작업을 통해 연결된 목록을 스택, 대기열로 사용할 수 있습니다. 또는 이중 종료 대기열.

LinkedList는 이전 두 목록과 다릅니다. 배열을 기반으로 하지 않으므로 배열 성능에 의해 제한되지 않습니다.

각 노드(Node)에는 콘텐츠의 두 가지 측면이 포함됩니다. 1. 노드 자체의 데이터(데이터) 2. 그래서 LinkedList에 액션을 추가하고 삭제할 때 배열 기반 ArrayList처럼 많은 데이터를 이동할 필요가 없습니다. 이는 nextNode의 관련 정보만 변경하면 가능합니다. 이것이 LinkedList의 장점입니다.

목록 요약:


모든 목록은 키-값 쌍이 아닌 다양한 유형의 단일 개체로 구성된 테이블만 수용할 수 있습니다. 예: [tom,1,c]

모든 목록은 동일한 요소를 가질 수 있습니다. 예를 들어 벡터는 [tom,koo,too,koo]

all을 가질 수 있습니다. 목록에는 [tom,null,1]

  • 과 같은 null 요소가 있을 수 있습니다. 배열 기반 목록(벡터, ArrayList)은 쿼리에 적합하고 LinkedList는 추가 및 삭제 작업에 적합합니다
  • 6. Set(인터페이스) API----공식적으로 집합에는 요소 쌍이 없으며 이름에서 알 수 있듯이 최대 하나의 null 요소가 포함됩니다. 이 인터페이스는 수학적

    set
  • 추상화를 모델로 합니다.
  • Set은 반복되는 요소를 포함하지 않는 컬렉션입니다

    7、HashSet

    API------이 클래스는 해시 테이블(실제로는HashMap 인스턴스)을 기반으로 하는Set 인터페이스를 구현합니다. 반복에 특히, 순서가 시간이 지나도 일정하게 유지된다는 보장은 없습니다. 이 클래스는

    Set과 List 모두 Collection 인터페이스를 구현하지만 상당히 다릅니다. List는 기본적으로 Array를 기반으로 합니다. 그러나 Set은 HashMap을 기반으로 구현됩니다. 이것이 Set과 List의 근본적인 차이점입니다. HashSet의 저장 방법은 HashMap의 Key를 Set의 해당 저장 항목으로 사용하는 것입니다. 보세요 HashSet의 add(Object obj) 메소드 구현을 한눈에 볼 수 있습니다.

    8、LinkedHashSet

    API ----

    List 인터페이스의 연결 목록 구현을 구현하고 모든 요소(null 포함)를 허용합니다. List 인터페이스에서 LinkedList 클래스는 목록의 시작과 끝 부분에 요소를get, removeinsert하는 균일한 이름의 메서드를 제공합니다. 이러한 작업을 통해 연결된 목록을 스택, 대기열로 사용할 수 있습니다. , 또는 연결된 목록인

    HashSet의 하위 클래스입니다.

    9、SortedSet

    API---A.) Set that further provides atotal ordering on its elements. The elements are ordered using theirnatural ordering, or by aComparator typically provided at sorted set creation time. The set's iterator will traverse the set in ascending element order. Several additional operations are provided to take advantage of the ordering. (This interface is the set analogue ofSortedMap

    세트 주문, SortedMap을 통해 달성됩니다.

    Set 요약:

    (1) Set 구현의 기본은 Map(HashMap)입니다. (2) Set 요소는 add(Object)를 사용하면 반복될 수 없습니다. obj) 기존 개체를 추가하는 메서드는 이전 개체를 덮어씁니다

    -------------Map------

    Map은 키 개체와 값 개체를 연결하는 컨테이너입니다. 맵 등이 될 수 있으므로 다중 레벨 매핑을 형성합니다. Set과 같은 주요 개체의 경우 맵 컨테이너의 주요 개체는 반복될 수 없습니다. 이는 동일한 두 개의 주요 개체가 있는 경우 검색 결과의 일관성을 유지하기 위한 것입니다. 아마도 당신이 생각한 값 객체가 아닐 수도 있고 결과적으로 혼란이 생길 ​​수도 있습니다. 따라서 키의 고유성은 매우 중요하며 키의 본질과 일치합니다. 세트. 물론, 사용 중에 특정 키에 해당하는 값 개체가 변경될 수 있습니다. 이 경우 마지막으로 수정된 값 개체가 해당 키에 해당합니다. 값 개체에 대한 고유성 요구 사항은 없습니다. 문제 없이 여러 개의 키를 값 개체에 매핑할 수 있습니다(그러나 사용에 불편을 초래할 수 있습니다. 무엇을 얻는지 알 수 없습니다. 해당 값 개체는 무엇입니까?) 열쇠).

    1、HashMap

    API ----Map 인터페이스의 해시 테이블 기반 구현 이 구현은 모든 선택적 맵 작업을 제공하고null을 허용합니다. 값과 null 키입니다. (HashMap 클래스는 비동기화되고 null을 허용한다는 점을 제외하면 Hashtable과 거의 동일합니다.) 이 클래스는 특히 맵의 순서를 보장하지 않습니다. 그것은 그것을 보장하지 않습니다 순서는 시간이 지나도 일정하게 유지됩니다.

    2、TreeMap

    API ----사용되는 생성자에 따라 지도 생성 시 제공되는 Red-Black 트리 기반NavigableMap implementation. The map is sorted according to thenatural ordering of its keys, or by aComparator. 키를 순서대로 저장하므로 firstKey(), lastKey() 등과 같은 일부 확장된 메서드가 있습니다. 또한 TreeMap에서 범위를 지정하여 하위 맵을 얻을 수도 있습니다.

    키와 값 사이의 연관은 매우 간단합니다. put(Object key, Object value) 메소드를 사용하여 키를 값 객체와 연관시킵니다. get(Object key)를 사용하여 이 키 개체에 해당하는 값 개체를 가져옵니다.


    ---------설명----------

    1. 일반적으로 사용되는 여러 카테고리의 차이점
    1. 배열목록: 단일 요소, ​​고효율, 주로 쿼리에 사용됨
    2. 벡터: 단일 요소, ​​스레드 안전, 주로 쿼리에 사용됨
    3. LinkedList: 단일 요소, ​​주로 삽입 및 삭제에 사용됩니다.
    4. 해시맵: 요소는 쌍으로 되어 있으며 요소는 비어 있을 수 있습니다.
    5. 해시테이블: 요소는 쌍을 이루고 스레드로부터 안전하며 요소는 null일 수 없습니다.
    2. 벡터, ArrayList 및 LinkedList
    대부분의 경우 성능의 Ar rayList가 가장 좋지만 컬렉션의 요소를 자주 삽입하고 삭제해야 하는 경우 LinkedList가 더 나은 성능을 발휘하지만 그 중 세 가지의 성능은 배열만큼 좋지 않습니다. 또한 Vector는 스레드 동기화됩니다. 따라서:
    배열을 사용할 수 있는 경우(요소 유형은 고정되고 배열 길이는 고정됨) 멀티 스레딩 문제를 고려하여 ArrayList에 우선순위를 두십시오.멀티 스레드 조건에서 사용하는 경우 Vector를 고려할 수 있습니다.
    자주 삭제하고 삽입해야 하는 경우 LinkedList가 유용합니다. 내가 모르는 것은 ArrayList를 사용하는 데 아무런 문제가 없다는 것입니다.

    세 가지, 컬렉션 및 배열

    in Java 컬렉션 클래스 프레임워크에는 Collections(Collection 아님!)와 Arrays라는 두 가지 클래스가 있습니다. 이는 JCF의 강력한 도구이지만 초보자는 이를 무시하는 경우가 많습니다. JCF 문서에 따르면 이 두 클래스는 래퍼 구현(래퍼 구현), 데이터 구조 알고리즘 및 배열 관련 애플리케이션을 제공합니다.
    위에서 언급한 "반감 검색" 및 "정렬"과 같은 고전적인 알고리즘을 잊지 않으실 것이라고 믿습니다. Collections 클래스는 데이터 구조 클래스에서 이러한 성가신 작업을 쉽게 완료하는 데 도움이 되는 풍부한 정적 메서드를 제공합니다. . :
    binarySearch: 절반 검색.
    sort: 정렬, 여기에는 퀵 정렬과 유사한 방법이 있지만 효율성은 여전히 ​​O(n * log n)이지만 안정적인 정렬 방법입니다.
    reverse: 선형 테이블을 역순으로 작동합니다. 이는 과거의 데이터 구조에 대한 고전적인 테스트 문제입니다.
    rotate: 특정 요소를 축으로 하여 선형 테이블을 "회전"합니다.
    swap: 선형 목록에서 두 요소의 위치를 ​​바꿉니다.
    ...
    컬렉션의 또 다른 중요한 기능은 다음과 같이 컬렉션을 특수 컬렉션으로 변환하는 몇 가지 방법을 제공하는 "래퍼"입니다.
    수정 불가능XXX: 읽기 전용 컬렉션으로 변환합니다. 여기서 XXX는 6개의 기본 컬렉션 인터페이스(Collection, List, Map, Set, SortedMap 및 SortedSet)를 나타냅니다. 읽기 전용 컬렉션을 삽입하거나 삭제하면 UnsupportedOperationException이 발생합니다.
    synchronizedXXX: 동기화된 컬렉션으로 변환합니다.
    싱글톤: 단 하나의 요소로 집합을 만듭니다. 여기서 싱글톤은 단일 요소 집합을 생성합니다.
    singletonList 및 SingletonMap은 각각 단일 요소 List 및 Map을 생성합니다.
    빈 집합: 컬렉션의 정적 속성 EMPTY_SET, EMPTY_LIST 및 EMPTY_MAP으로 표시됩니다.

위 내용은 Java에서 일반적으로 사용되는 여러 데이터 구조를 요약하고 공유합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자바의 완전수 자바의 완전수 Aug 30, 2024 pm 04:28 PM

Java의 완전수 가이드. 여기서는 정의, Java에서 완전 숫자를 확인하는 방법, 코드 구현 예제에 대해 논의합니다.

Java의 난수 생성기 Java의 난수 생성기 Aug 30, 2024 pm 04:27 PM

Java의 난수 생성기 안내. 여기서는 예제를 통해 Java의 함수와 예제를 통해 두 가지 다른 생성기에 대해 설명합니다.

자바의 웨카 자바의 웨카 Aug 30, 2024 pm 04:28 PM

Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 스미스 번호 Java의 스미스 번호 Aug 30, 2024 pm 04:28 PM

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

Java Spring 인터뷰 질문 Java Spring 인터뷰 질문 Aug 30, 2024 pm 04:29 PM

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 날짜까지의 타임스탬프 Java의 날짜까지의 타임스탬프 Aug 30, 2024 pm 04:28 PM

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

15 일반적으로 사용되는 통화 서클 이스케이프 인덱스 기술 분석 15 일반적으로 사용되는 통화 서클 이스케이프 인덱스 기술 분석 Mar 03, 2025 pm 05:48 PM

상위 15 개의 Bitcoin Escape Index에 대한 심층 분석 : 2025 년 시장 전망이 기사는 일반적으로 사용되는 15 개의 Bitcoin Escape Index를 깊이 분석하며, 그 중 비트 코인 Rhodl 비율, USDT 현재 자산 관리 및 Altcoin 계절 지수가 2024 년에 탈출 지수에 도달하여 시장의 관심을 끌었습니다. 투자자는 어떻게 잠재적 위험을 처리해야합니까? 이러한 지표를 하나씩 해석하고 합리적인 대응 전략을 탐색합시다. 1. 주요 지표에 대한 자세한 설명 AHR999 Coin Hoarding Indicator : AHR999에 의해 생성, 비트 코인 고정 투자 전략 지원. 현재 값은 1.21로 대기중인 범위에 있으므로 조심해야합니다. AHR999에 대한 링크 Escape Top Indicator : AHR999 Coin Hoarding Indicator 보충제, 시장의 최고를 식별하는 데 사용됩니다. 현재 값은 이번 주 2.48입니다

See all articles