Java基礎十五

Java基礎

集合框架(TreeSet)

Set:無序,不可以重複元素。
HashSet:數據結構是哈希表。線程是非同步的。
保證元素唯一性的原理:判斷元素的hashCode值是否相同。
如果相同,還會繼續判斷元素的equals方法,是否爲true。

TreeSet:可以對Set集合中的元素進行排序。
底層數據結構是二叉樹。
保證元素唯一性的依據:
compareTo方法return 0.

TreeSet排序的第一種方式:
讓元素自身具備比較性。
元素需要實現Comparable接口,覆蓋compareTo方法。
這種方式也成爲元素的自然順序,或者叫做默認順序。

TreeSet的第二種排序方式:
當元素自身不具備比較性時,或者具備的比較性不是所需要的。
這時就需要讓集合自身具備比較性。
在集合初始化時,就有了比較方式。

排序時,當主要條件相同時,一定判斷一下次要條件。

當元素自身不具備比較性,或者具備的比較性不是所需要的。
這時需要讓容器自身具備比較性。
定義了比較器,將比較器對象作爲參數傳遞給TreeSet集合的構造函數。

當兩種排序都存在時,以比較器爲主。

定義一個類,實現Comparator接口,覆蓋compare方法。

泛型

泛型:JDK1.5版本以後出現新特性。用於解決安全問題,是一個類型安全機制。

好處
1.將運行時期出現問題ClassCastException,轉移到了編譯時期。,
方便於程序員解決問題。讓運行時問題減少,安全。,

2,避免了強制轉換麻煩。

泛型格式:通過<>來定義要操作的引用數據類型。

在使用java提供的對象時,什麼時候寫泛型呢?

通常在集合框架中很常見,
只要見到<>就要定義泛型。

其實<> 就是用來接收類型的。

當使用集合時,將集合中要存儲的數據類型作爲參數傳遞到<>中即可。

泛型類

什麼時候定義泛型類?
當類中要操作的引用數據類型不確定的時候,
早期定義Object來完成擴展。
現在定義泛型來完成擴展。

在這裏插入圖片描述

泛型方法

泛型類定義的泛型,在整個類中有效。如果被方法使用,
那麼泛型類的對象明確要操作的具體類型後,所有要操作的類型就已經固定了。

爲了讓不同方法可以操作不同類型,而且類型還不確定。
那麼可以將泛型定義在方法上。

特殊之處:
靜態方法不可以訪問類上定義的泛型。
如果靜態方法操作的應用數據類型不確定,可以將泛型定義在方法上。

泛型限定

? 通配符。也可以理解爲佔位符。
泛型的限定;
? extends E: 可以接收E類型或者E的子類型。上限。
? super E: 可以接收E類型或者E的父類型。下限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章