本文目錄一覽:
Java 常用數據結構
線性表,鏈表,哈希表是常用的數據結構,在進行Java開發時,JDK已經為我們提供了一系列相應的類來實現基本的數據結構。這些類均在java.util包中。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
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該怎樣理解數據結構
在Java中的數據結構呢,主要是包括以下幾種接口和類:枚舉,位集合,向量,棧,字典,哈希表,屬性。
下面來簡單理解下這些類的關鍵點在哪裡。
枚舉:
枚舉借口雖然它本身不屬於數據結構,但它在其他數據結構的範疇裡面試應用非常廣的。枚舉接口定義了一種從數據機構中取回連續元素方式。
例如,枚舉定義了一個叫nextelement的方法,該方法用來得到一個包含多元素的數據結構的下一個元素。
位集合:
位集合類實現了一組可以單獨設置和清楚的位和標誌。該類在處理一組布爾值的時候非常有用,你只需要給每個值賦值一“位”,然後對位進行適當的設置或者清除,就可以對布爾值進行操作了。
向量:
向量類和傳統數組非常相似,但是vector的大小能根據需要動態的變化。和數組一樣,Vector對象的元素也能通過索引訪問。
使用Vector類最主要的好處就是在創建對象的時候不必給對象指定大小,它的大小會根據需要動態的變化。
棧:
棧實現了一個後進先出的數據結構。你可以把棧理解為對象的垂直分布的棧,當你添加一個新元素時,就將新元素放在其他元素的頂部。
當你從棧中取元素的時候,就從棧頂取一個元素。換句話說,最後進棧的元素最先被取出。
字典:
字典類是一個抽象類,他定義了鍵映射到值的數據結構當你想要通過特定的鍵而不是整數索引來訪問數據的時候,這時候應該使用Dictionary。
由於Dictionary類是抽象類,所以它只提供了鍵映射到值的數據結構,而沒有提供特定的實現。
哈希表:
Hashtable類提供了一種在用戶定義鍵結構的基礎上來組織數據的手段。例如,在地址列表的哈希表中,你可以根據郵政編碼作為鍵來存儲和排序數據,而不是通過人名。
哈希表鍵的具體含義完全取決於哈希表的使用情景和它包含的數據。
屬性:
Properties 繼承於 Hashtable.Properties 類表示了一個持久的屬性集.屬性列表中每個鍵及其對應值都是一個字符串。
Properties 類被許多Java類使用。例如,在獲取環境變量時它就作為System.getProperties()方法的返回值。
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容器中的鍵對象不允許重複,這是為了保證查找結果的一致性。
原創文章,作者:X4NQP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129524.html