導航:首頁 > 編程語言 > java數據結構類

java數據結構類

發布時間:2022-09-28 08:05:23

java數據結構都有哪些

①數組 (Array)
在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來。這些按序排列的同類數
據元素的集合稱為數組。在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組
元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指
針數組、結構數組等各種類別。
②棧 (Stack)
棧是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後
的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。
③隊列 (Queue)
一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行
插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。
④鏈表 (Linked List)
一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。
鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:
一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
⑤樹 (Tree)
樹是包含n(n>0)個結點的有窮集合K,且在K中定義了一個關系N,N滿足 以下條件:
(1)有且僅有一個結點 k0,他對於關系N來說沒有前驅,稱K0為樹的根結點。簡稱為根(root)
(2)除K0外,k中的每個結點,對於關系N來說有且僅有一個前驅。
(3)K中各結點,對關系N來說可以有m個後繼(m>=0)。
⑥堆 (Heap)
在計算機科學中,堆是一種特殊的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指
二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。
⑦圖 (Graph)
圖是由結點的有窮集合V和邊的集合E組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,
邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關系。
⑧散列表 (Hash)
若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱
這個對應關系f為散列函數(Hash function),按這個思想建立的表為散列表。

❷ JAVA數據結構

public class CallNotes {

String name;
String phoneNumber;
static Map<String,String> noteMap=null;
static List<CallLog> logList=null;

CallNotes(){
this.noteMap = new HashMap<String,String>();
this.logList = new ArrayList<CallLog>();
}

void addRecord(String name,String number){
noteMap.put(name,number);
}
void removeRecord(String name){
noteMap.remove(name);
}

String searchPhoneNumber(String name){
String number=null;
number = noteMap.get(name);
logList.add(new CallLog(name, number, new Date()));
return number;
}
void outputCallLog(CallLog log){
if(log==null) return ;
log.outputLog();
}

class CallLog{
String name;
String number;
Date date;
CallLog(String name,String num,Date date) {
this.name=name;
this.number=num;
this.date=date;
}
void outputLog(){
System.out.println("name:"+this.name);
System.out.println("number:"+this.number);
System.out.println("date:"+this.date);
}
}
}
用HashMap實現可以嗎?

❸ java八大數據結構要學多久

2個月。因為運行環境需要一天,關鍵詞需要一天,數據類型、運算符需要一天,條件結構、循環結構給你一周,方法重載、數組給你一周。面向對象、這個、構造方法,差不多一周就夠了。常用API、繼承與多態、聚合、異常、多線程、網路編程常用的API給你一天,繼承和多態給你一天,聚集給你一個星期,多線程(入門)、網路編程給你一個星期,所以大概要2個月左右。

❹ Java的數據結構你用過哪些Map與Set的本質區別是什麼

java中常見的數據結構有:

數組

集合類——Collection(list(ArrayList,LinkedList),set(HashSet))

List 是鏈表(介面),是可以允許出現重復值的。它的具體實現類:ArrayList和LinkedList

set 是集合(介面),不允許出現重復值。它的具體實現類HashMap

ArrayList 實現鏈表的內部結構是用數組(Array)。查找高效,修改低效

LinkedList 實現鏈表的內部結構是鏈表(Linked)。查找低效,修改高效

set是集合(介面),不允許出現重復值

Iterator迭代器

簡介:java提供的迭代器介面進行java collection的遍歷。Iterator模式是用於遍歷類的標准訪問方法

所有的繼承Coollection的集合類子類,都有Iterator()方法用於反饋迭代器,程序額可以獲取這個迭代器對象對Collection對象中的元素進行遍歷。

鍵值對容器 ——Map

Map是一種把鍵對象和值對象進行關聯的容器

指出:像set一樣,一個Map容器中的鍵對象不允許重復,這是為了保證查找結果的一致性。

❺ java 數據結構

first = first.setData(o);

由方法
public void setData(Object o)
{
data = o;
}
可知,setData(Object o)返回的是void,即不返回任何東西,你將它賦值給first自然出錯
我建議你的類改成這樣
public class Node()
{
Node first ;
Node next;
Object data;
public Node()
{
}
public Node(Object o)
{
this.setData(o);
}
public void setData(Object o)
{
data = o;
}
public Object getData()
{
return data;
}
public void setNext(Node next)
{
this.next= next;
}
public Node getNext()
{
return next;
}
public void setFirst(Node first)
{
this.first=first

}

public Node getFirst()
{
return first;

}

}
建議先理一下思路

❻ JAVA數據結構有哪幾種

數組、棧 、隊列、鏈表、樹、堆 、圖、散列表 。

1:數組是計算機編程語言上,對於「Array」的中文稱呼,是用於儲存多個相同類型數據的集合。

2:棧是限定僅在表尾進行插入和刪除操作的線性表,棧者,存儲貨物或供旅客住宿的地方,可引申為倉庫、中轉站,引入到計算機領域里,就是指數據暫時存儲的地方,所以才有進棧、出棧的說法。

3:一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。

4:鏈表,一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。

5:哈希表,是根據關鍵碼值而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。

❼ Java數據結構和類有哪些

這個就有點多了。建議你買一本《JAVA從入門到精通》,或者去CSDN博客查找相關學習資料,你的問題ctrl+v到博客完美解決

❽ JAVA類庫裡面有哪些關於數據結構的類麻煩列舉下類名

Java中提供了一系列相應的類來實現基本的數據結構。這些類均在java.util包中數據結構類的基本結構: Collection ├List │├LinkedList │├ArrayList │└Vector │└Stack └Set └HashSet Map ├Hashtable ├HashMap └WeakHashMap

❾ java中都有哪些數據結構

數據結構:
①數組 (Array)
在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來。這些按序排列的同類數
據元素的集合稱為數組。在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組
元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指
針數組、結構數組等各種類別。
②棧 (Stack)
棧是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後
的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。
③隊列 (Queue)
一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行
插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。
④鏈表 (Linked List)
一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。
鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:
一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
⑤樹 (Tree)
樹是包含n(n>0)個結點的有窮集合K,且在K中定義了一個關系N,N滿足 以下條件:
(1)有且僅有一個結點 k0,他對於關系N來說沒有前驅,稱K0為樹的根結點。簡稱為根(root)
(2)除K0外,k中的每個結點,對於關系N來說有且僅有一個前驅。
(3)K中各結點,對關系N來說可以有m個後繼(m>=0)。
⑥堆 (Heap)
在計算機科學中,堆是一種特殊的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指
二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。
⑦圖 (Graph)
圖是由結點的有窮集合V和邊的集合E組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,
邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關系。
⑧散列表 (Hash)
若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱
這個對應關系f為散列函數(Hash function),按這個思想建立的表為散列表。
差不多我就知道這些了~

❿ 曲靖電腦培訓學校告訴你Java中最常用的集合類框架



一、HashMap的概述

HashMap可以說是Java中最常用的集合類框架之一,是Java語言中非常典型的數據結構。

HashMap是基於哈希表的Map介面實現的,此實現提供所有可選的映射操作。曲靖電腦培訓http://www.kmbdqn.cn/發現存儲的是對的映射,允許多個null值和一個null鍵。但此類不保證映射的順序,特別是它不保證該順序恆久不變。

除了HashMap是非同步以及允許使用null外,HashMap類與Hashtable大致相同。

此實現假定哈希函數將元素適當地分布在各桶之間,可為基本操作(get和put)提供穩定的性能。迭代collection視圖所需的時間與HashMap實例的「容量」(桶的數量)及其大小(鍵-值映射關系數)成比例。所以,如果迭代性能很重要,則不要將初始容量設置得太高(或將載入因子設置得太低)。

HashMap的實例有兩個參數影響其性能:初始容量和載入因子。容量是哈希表中桶的數量,初始容量只是哈希表在創建時的容量。載入因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數超出了載入因子與當前容量的乘積時,則要對該哈希表進行rehash操作(即重建內部數據結構),從而哈希表將具有大約兩倍的桶數。


通常,默認載入因子(0.75)在時間和空間成本上尋求一種折衷。載入因子過高雖然減少了空間開銷,但同時也增加了查詢成本(在大多數HashMap類的操作中,包括get和put操作,都反映了這一點)。在設置初始容量時應該考慮到映射中所需的條目數及其載入因子,以便最大限度地減少rehash操作次數。如果初始容量大於最大條目數除以載入因子,則不會發生rehash操作。

注意,此實現不是同步的。如果多個線程同時訪問一個HashMap實例,而其中至少一個線程從結構上修改了列表,那麼它必須保持外部同步。這通常是通過同步那些用來封裝列表的對象來實現的。但如果沒有這樣的對象存在,則應該使用{@linkCollections#synchronizedMapCollections.synchronizedMap}來進行「包裝」,該方法最好是在創建時完成,為了避免對映射進行意外的非同步操作。

Mapm=Collections.synchronizedMap(newHashMap(...));

二、構造函數

HashMap提供了三個構造函數:

HashMap():構造一個具有默認初始容量(16)和默認載入因子(0.75)的空HashMap。

HashMap(intinitialCapacity):構造一個帶指定初始容量和默認載入因子(0.75)的空HashMap。

HashMap(intinitialCapacity,floatloadFactor):構造一個帶指定初始容量和載入因子的空HashMap。

這里提到了兩個參數:初始容量,載入因子。這兩個參數是影響HashMap性能的重要參數,其中容量表示哈希表中桶的數量,初始容量是創建哈希表時的容量,載入因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度,它衡量的是一個散列表的空間的使用程度,負載因子越大表示散列表的裝填程度越高,反之愈小。對於使用鏈表法的散列表來說,查找一個元素的平均時間是O(1+a),因此如果負載因子越大,對空間的利用更充分,然而後果是查找效率的降低;如果負載因子太小,那麼散列表的數據將過於稀疏,對空間造成嚴重浪費。系統默認負載因子為0.75,一般情況下我們是無需修改的。

HashMap是一種支持快速存取的數據結構,要了解它的性能必須要了解它的數據結構。


閱讀全文

與java數據結構類相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:477
ipad能用c語言編譯器嗎 瀏覽:561
軟泥解壓球最新版 瀏覽:998
4萬程序員辭職創業 瀏覽:759
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:6
耳朵清潔解壓聲控99的人都睡得著 瀏覽:205
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:408
不帶gui的伺服器什麼意思 瀏覽:373
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:358
php5432 瀏覽:352
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:708
為什麼需要硬體驅動編譯 瀏覽:885
pm編程怎樣看導柱孔對不對稱 瀏覽:138
農業大學選課找不到伺服器怎麼辦 瀏覽:659
路由配置網關命令 瀏覽:935