TreeSet的null值與元素型別的約束
一、TreeSet
Java的TreeSet通過TreeMap來實現,具有自然排序的功能。
在預設情況下,元素不允許為null值,元素必須是相同型別,元素必須實現了Comparable介面;否則會出現java.lang.ClassCastException。
可以通過設定Comparator介面的例項,來實現元素允許為null值,元素為不同型別。
二、程式碼實現
(1)預設情況
TreeSet treeSet=new TreeSet();
treeSet.add(1);
treeSet.add(2.0);
輸出結果
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at java.lang.Double.compareTo(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at cn.test.Test.main(Test.java:9)
(2)null值
TreeSet treeSet=new TreeSet((o1,o2)->{
return Objects.toString(o1).compareTo(Objects.toString(o2));
});
treeSet.add(1);
treeSet.add(null);
(3)不同型別
TreeSet treeSet=new TreeSet((o1,o2)->{
return Double.valueOf(o1.toString()).compareTo(Double.valueOf(o2.toString()));
});
treeSet.add(1);
treeSet.add(2.0);
相關文章
- 資料型別與約束資料型別
- Java泛型(三):型別擦除帶來的約束與侷限性Java泛型型別
- SQL教程——常見的約束型別SQL型別
- Sqlserver中所有約束的型別,建立、修改與刪除SQLServer型別
- 【SQL】15 SQL 約束(Constraints)、NOT NULL 約束、UNIQUE 約束、PRIMARY KEY 約束、FOREIGN KEY 約束、CHECK 約束、DEFAULT約束SQLAINull
- 值型別與引用型別的區別型別
- 泛型的約束理解泛型
- 預設值+TS型別約束提高資料處理成功率型別
- MySQL——表的約束,資料型別,增刪查改MySql資料型別
- JS 的型別(null 和 undefined 的區別)JS型別NullUndefined
- SCSS Null 型別CSSNull型別
- [20190612]NULL的資料型別.txtNull資料型別
- 32. 基本資料型別、約束條件資料型別
- mysql中null與“空值”的坑MySqlNull
- JavaScript - 基本型別與引用型別值JavaScript型別
- Go: 指標方法與值方法<->指標型別與值型別Go指標型別
- Swift-Optional Binding引發的值型別與引用型別的思考Swift型別
- 用強資料型別保護你的表單資料-基於antd表單的型別約束資料型別
- C#泛型約束C#泛型
- XML Schema 字串資料型別及約束詳解XML字串資料型別
- mysql 空值(null)和空字元('')的區別MySqlNull字元
- Go 泛型之泛型約束Go泛型
- [譯]Kotlin泛型中何時該用型別形參約束?Kotlin泛型型別
- stevia別具一格的約束庫
- TS中特殊型別-any、unknown、never和extends繼承約束、keyof的使用型別繼承
- 資料庫中欄位資料型別以及約束資料庫資料型別
- 【MySQL】MySQL基礎(SQL語句、約束、資料型別)MySql資料型別
- TypeScript Null和Undefined 型別TypeScriptNullUndefined型別
- 你還不知道mysql中空值和null值的區別嗎?MySqlNull
- 用Keras中的權值約束緩解過擬合Keras
- 多型中的返回值型別多型型別
- HTML的行內元素與塊級元素的區別?HTML
- 淺析number型別的值型別
- 塗鴉雲平臺資料型別和取值約束說明資料型別
- Maven中dependency和plugins的繼承與約束MavenPlugin繼承
- 從賦值看基本型別和引用型別的區別賦值型別
- 值型別和引用型別型別
- 委派與約束委派復現