本文目錄一覽:
java容器使用
Java的容器分別有list、map和set
list接口下:
一種是基本的ArrayList,其優點在於隨機訪問元素,
另一種是更強大的LinkedList,它並不是為快速隨機訪問設計的,而是具有一套更通用的方法,對順序訪問進行了優化,向List中間插入與刪除的開銷並不大.常用於有順序的插入和刪除,效率比較高
set接口:
HashSet : 為快速查找設計的Set。存入HashSet的對象必須定義hashCode()。
TreeSet : 保存次序的Set, 底層為樹結構。使用它可以從Set中提取有序的序列。
LinkedHashSet : 具有HashSet的查詢速度,且內部使用鏈表維護元素的順序(插入的次序)。於是在使用迭代器遍歷Set時,結果會按元素插入的次序顯示。
map接口:
Map : 維護「鍵值對」的關聯性,使你可以通過「鍵」查找「值」
HashMap : Map基於散列表的實現。插入和查詢「鍵值對」的開銷是固定的。可以通過構造器設置容量capacity和負載因子load factor,以調整容器的性能。HashMap就是使用對象的hashCode()進行快速查詢的。此方法能夠顯著提高性能。
LinkedHashMap : 類似於HashMap,但是迭代遍歷它時,取得「鍵值對」的順序是其插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一點。而在迭代訪問時反而更快,因為它使用鏈表維護內部次序。
TreeMap : 基於紅黑樹數據結構的實現。查看「鍵」或「鍵值對」時,它們會被排序(次序由Comparabel或Comparator決定)。TreeMap的特點在於,你得到的結果是經過排序的。TreeMap是唯一的帶有subMap()方法的Map,它可以返回一個子樹。
在JAVA中怎麼比較Double類型數據的大小
你如果是要普通比較直接用數學符號即可,指的在其jvm允許的範圍內如果,你是要很準確的精度比較運算,由於精度問題,可能會有誤差,建議使用BigDecimal類型!
//普通比較
Double obj1 = new Double(“0.001”);
Double obj2 = new Double(“0.0011”);
obj1.compareTo(obj2);
//精度準確比較
double a=obj1;
double b=obj2;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2);
//該方法兩種類都有
public int compareTo(BigDecimal val)
/*將此 BigDecimal 與指定的 BigDecimal 比較。根據此方法,值相等但具有不同標度的兩個 BigDecimal對象(如,2.0 和 2.00)被認為是相等的。相對六個 boolean 比較運算符 (, ==, , =, !=, =) 中每一個運算符的各個方法,優先提供此方法。
*參數:val – 將此 BigDecimal 與之比較的 BigDecimal。
*返回:當此 BigDecimal 在數字上小於、等於或大於 val 時,返回 -1、0 或 1。
*/
java biginteger怎麼比較大小
compareTo方法來比較,小於則返回-1,等於則返回0,大於則返回1
BigInteger a1 = new BigInteger(“1”);
BigInteger a2 = new BigInteger(“2”);
a1.compareTo(a2);
下面的例子顯示math.BigInteger.compareTo()方法的用法
package com.yiibai;import java.math.*;public class BigIntegerDemo {public static void main(String[] args) {
// create 2 BigInteger objects
BigInteger bi1, bi2;
bi1 = new BigInteger(“6”);
bi2 = new BigInteger(“3”);
// create int object
int res;
// compare bi1 with bi2
res = bi1.compareTo(bi2);
String str1 = “Both values are equal “;
String str2 = “First Value is greater “;
String str3 = “Second value is greater”;
if( res == 0 )
System.out.println( str1 );
else if( res == 1 )
System.out.println( str2 );
else if( res == -1 )
System.out.println( str3 );
}}
讓我們編譯和運行上面的程序,這將產生以下結果:
First Value is greater
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/297644.html