本文目錄一覽:
JAVA數據結構有哪幾種?
數組、棧 、隊列、鏈表、樹、堆 、圖、散列表 。
1:數組是計算機編程語言上,對於“Array”的中文稱呼,是用於儲存多個相同類型數據的集合。
2:棧是限定僅在表尾進行插入和刪除操作的線性表,棧者,存儲貨物或供旅客住宿的地方,可引申為倉庫、中轉站,引入到計算機領域裡,就是指數據暫時存儲的地方,所以才有進棧、出棧的說法。
3:一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。
4:鏈表,一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。
5:哈希表,是根據關鍵碼值而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。
JAVA數據結構有哪幾種
JAVA數據結構有以下幾種:
1、List:
List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。用戶能夠使用索引(元素在List中的位置,類似於數組下 標)來訪問List中的元素,這類似於Java的數組。
2、Vector:
基於數組(Array)的List,其實就是封裝了數組所不具備的一些功能方便我們使用,所以它難易避免數組的限制,同時性能也不可能超越數組。
另外很重要的一點就是Vector是線程同步的(sychronized)的,這也是Vector和ArrayList 的一個的重要區別。
3、ArrayList:
同Vector一樣是一個基於數組上的鏈表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector好一些,但是當運行到多線程環境中時,可需要自己在管理線程的同步問題。
4、LinkedList:
LinkedList不同於前面兩種List,它不是基於數組的,所以不受數組性能的限制。 它每一個節點(Node)都包含兩方面的內容:節點本身的數據(data),下一個節點的信息(nextNode)。
所以當對LinkedList做添加,刪除動作的時候就不用像基於數組的ArrayList一樣,必須進行大量的數據移動。只要更改nextNode的相關信息就可以實現了,這是LinkedList的優勢。
5、HashSet:
雖然Set同List都實現了Collection接口,但是他們的實現方式卻大不一樣。List基本上都是以Array為基礎。
但是Set則是在 HashMap的基礎上來實現的,這就是Set和List的根本區別。HashSet的存儲方式是把HashMap中的Key作為Set的對應存儲項。
6、HashMap:
基於哈希表的 Map 接口的實現。此實現提供所有可選的映射操作,並允許使用 null 值和 null 鍵。(除了不同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同。)此類不保證映射的順序,特別是它不保證該順序恆久不變。
7、HashTable:
Hashtable 是一個散列表,它存儲的內容是鍵值對(key-value)映射。Hashtable 繼承於Dictionary,實現了Map、Cloneable、java.io.Serializable接口。
Hashtable 的函數都是同步的,這意味着它是線程安全的。它的key、value都不可以為nul
Java語言中的類的基本結構是什麼?
1.類是JAVA程序得的基本組成單位,定義了對象的屬性和方法,是具有共同屬性和行為的對象的集合。
2.對象的實質:屬性+行為。
3.類的基本結構:屬性,方法,構造方法,內部類,塊。屬性是對數據的描述。方法是對象的行為。構造方法用於實例化對象。
4.方法重載:
1)方法重載的原則:函數名相同,參數類型不同,參數個數不同,參數順序不同,在同一作用域。
2)方法重載跟方法的返回值類型沒有關係,只有返回值不同的方法不能構成重載。
5.方法的調用:類名.方法
6.對象的創建:假設存在一個類Person,創建對象語句為Person p=new Person();
下面是一個例子,參考理解
public class Cat {
public static void main(String[] args) {
Kitty K1=new Kitty();//創建一個對象K1
Kitty K2=new Kitty(“小貓咪”,3);//創建一個對象K2,名字為小貓咪,年齡為3
System.out.println(“Kitty的名字:”+K1.name+K1.age+”歲”);//輸出對象K1的名字和年齡
K1.play();//調用play方法
K1.eat();//調用eat方法
System.out.println(“Kitty2的名字:”+K2.name+K2.age+”歲”);//輸出對象K2的名字和年齡
K2.play();//調用play方法
K2.eat();//調用eat方法
}
}
class Kitty{
String name=”小貓”;
int age=1;
//無參數的構造方法
Kitty(){
}
//有參數的構造方法
Kitty(String name,int age){
this.name=name;
this.age=age;
}
//玩的方法
void play() {
System.out.println(“玩橡皮泥”);
}
//吃的方法
void eat() {
System.out.println(“吃蘋果”);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243700.html