1. 程式人生 > 實用技巧 >Java—包裝類/System類/Math類/Arrays類/大資料運算/Collection介面/Iterator迭代器

Java—包裝類/System類/Math類/Arrays類/大資料運算/Collection介面/Iterator迭代器

基本型別包裝類

  8種基本型別對應的包裝類如:

  將字串轉成基本型別

  將基本數值轉成字串有3種方式:

    基本型別直接與””相連線即可;34+" "

    呼叫String的valueOf方法;String.valueOf(34)

  呼叫包裝類中的toString方法:Integer.toString(11);

  自動裝箱拆箱

    自動拆箱:物件自動直接轉成基本數值

      自動裝箱:基本數值自動直接轉成物件

Integer i = 4;//自動裝箱。相當於Integer i = Integer.valueOf(4);
i = i + 5;//等號右邊:將i物件轉成基本數值(自動拆箱) i.intValue() + 5; 加法運算完成後,再次裝箱,把基本數值轉成物件。

System類

  currentTimeMillis() 獲取當前系統時間與1970年01月01日00:00點之間的毫秒差值

  exit(int status)用來結束正在執行的Java程式。引數傳入一個數字即可。通常傳入0記為正常狀態,其他為異常狀態

  gc()用來執行JVM中的垃圾回收器,完成記憶體中垃圾的清除。

  getProperty(String key) 用來獲取指定(字串名稱)中所記錄的系統屬性資訊

  arraycopy方法,用來實現將源陣列部分元素複製到目標陣列的指定位置

Math類

 

 使用方法:

//abs方法,結果都為正數
double d1 = Math.abs(-5); // d1的值為5
double d2 = Math.abs(5); // d2的值為5
//ceil方法,結果為比引數值大的最小整數的double值
double d1 = Math.ceil(3.3); //d1的值為 4.0
double d2 = Math.ceil(-3.3) ; //d2的值為 -3.0
double d3 = Math.ceil(5.1); // d3的值為 6.0
//floor方法,結果為比引數值小的最大整數的double值
double d1 = Math.floor(3.3); //
d1的值為3.0 double d2 = Math.floor(-3.3); //d2的值為-4.0 double d3 = Math.floor(5.1); //d3的值為 5.0 //max方法,返回兩個引數值中較大的值 double d1 = Math.max(3.3, 5.5); //d1的值為5.5 double d2 = Math.max(-3.3, -5.5); //d2的值為-3.3 //min方法,返回兩個引數值中較小的值 double d1 = Math.min(3.3, 5.5); //d1的值為3.3 double d2 = Math.max(-3.3, -5.5); //d2的值為-5.5 //pow方法,返回第一個引數的第二個引數次冪的值 double d1 = Math.pow(2.0, 3.0); //d1的值為 8.0 double d2 = Math.pow(3.0, 3.0); //d2的值為27.0 //round方法,返回引數值四捨五入的結果 double d1 = Math.round(5.5); //d1的值為6.0 double d2 = Math.round(5.4); //d2的值為5.0 //random方法,產生一個大於等於0.0且小於1.0的double小數 double d1 = Math.random();

Arrays類

  此類包含用來運算元組(比如排序和搜尋)的各種方法。需要注意,如果指定陣列引用為 null,則訪問此類中的方法都會丟擲空指標異常NullPointerException

 

//sort方法,用來對指定陣列中的元素進行排序(元素值從小到大進行排序)
//源arr陣列元素{1,5,9,3,7}, 進行排序後arr陣列元素為{1,3,5,7,9}
int[] arr={1,5,9,3,7}
Arrays.sort(arr);
//toString方法,用來返回指定陣列元素內容的字串形式
int[] arr = {1,5,9,3,7};
String str=Arrays.toString(arr);/ str的值為[1, 3, 5, 7, 9]
//binarySearch方法,在指定陣列中,查詢給定元素值出現的位置。若沒有查詢到,返回位置為-1。要求該陣列必須是個有序的陣列。
int[] arr = {1,3,4,5,6};
int index=Arrays.binarySearch(arr,4); //index的值為2
int index=Arrays.binarySearch(arr,2); //index2的值為-1

大資料運算

  javalong型為最大整數型別,對於超過long型的資料如何去表示呢.Java的世界中,超過long型的整數已經不能被稱為整數了,

  它們被封裝成BigInteger物件.BigInteger類中,實現四則運算都是方法來實現,並不是採用運算子.

 

  構造方法中,採用字串的形式給出整數

  四則運算程式碼:

public static void main(String[] args) {
        //大資料封裝為BigInteger物件
          BigInteger big1 = new BigInteger("12345678909876543210");
          BigInteger big2 = new BigInteger("98765432101234567890");
          //add實現加法運算
          BigInteger bigAdd = big1.add(big2);
          //subtract實現減法運算
          BigInteger bigSub = big1.subtract(big2);
          //multiply實現乘法運算
          BigInteger bigMul = big1.multiply(big2);
          //divide實現除法運算
          BigInteger bigDiv = big2.divide(big1);
}

  

  doublefloat型別在運算中很容易丟失精度,造成資料的不準確性,Java提供我們BigDecimal可以實現浮點資料的高精度運算

 

  實現加法減法乘法程式碼如下:

public static void main(String[] args) {
          //大資料封裝為BigDecimal物件
          BigDecimal big1 = new BigDecimal("0.09");
          BigDecimal big2 = new BigDecimal("0.01");
          //add實現加法運算
          BigDecimal bigAdd = big1.add(big2);
          
          BigDecimal big3 = new BigDecimal("1.0");
          BigDecimal big4 = new BigDecimal("0.32");
          //subtract實現減法運算
          BigDecimal bigSub = big3.subtract(big4);
          
          BigDecimal big5 = new BigDecimal("1.105");
          BigDecimal big6 = new BigDecimal("100");
          //multiply實現乘法運算
          BigDecimal bigMul = big5.multiply(big6);

集合

  ArrayList集合  ArrayList<Integer> list = new ArrayList<Integer>();

  集合的繼承實現關係

    檢視ArrayList類發現它繼承了抽象類AbstractList同時實現介面List,而List介面又繼承了Collection介面。Collection介面為最頂層集合介面了

原始碼:
interfaceListextendsCollection{
}
public classArrayListextends AbstractList implementsList{
} 

  這說明我們在使用ArrayList類時,該類已經把所有抽象方法進行了重寫。那麼,實現Collection介面的所有子類都會進行方法重寫。  

  Collection介面常用的子介面有:List介面、Set介面

  List介面常用的子類有:ArrayList類、LinkedList

  Set介面常用的子類有:HashSet類、LinkedHashSet

  Collection介面是集合中的頂層介面

  Collection 表示一組物件,這些物件也稱為 collection 的元素。一些 collection 允許有重複的元素,而另一些則不允許。

  一些 collection 是有序的,而另一些則是無序的。

  建立集合的格式:

方式1:Collection<元素型別>變數名= new ArrayList<元素型別>();
方式2:Collection變數名= new ArrayList();

//建立集合
Collection coll = new ArrayList();
//1,往集合中新增物件元素。add(E e)方法,E代表建立集合時所指定的資料型別如<String>,那麼,E就代表String型別;建立集合時若沒有指定資料型別,那麼,E就代表Object型別。
coll.add("abc");
coll.add("ef");
coll.add("g");
//把集合列印一下。
System.out.println(coll);//列印結果為:[abc, ef, g]
System.out.println(coll.toString());//列印結果為:[abc, ef, g]
//2,從集合中刪除元素。remove(Object o)方法
coll.remove("ef");
//刪除後,集合元素為[abc, g]
//3,判斷集合中是否包含指定元素。contains(Object o)方法
System.out.println(coll.contains("abc"));
//列印結果為true
System.out.println(coll.contains("ef"));
//列印結果為false

//4,獲取集合元素個數。size()方法
System.out.println(coll.size());
//列印結果為2

//5,返回包含集合中所有元素的陣列。toArray()方法
String[] array = coll.toArray();
//陣列中的元素為{"abc","g"}

//6,清除集合元素。remove()方法
coll.clear();
//清空後,集合元素為[],代表沒有元素

Iterator迭代器

  hasNext()方法:用來判斷集合中是否有下一個元素可以迭代。如果返回true,說明可以迭代。

  next()方法:用來返回迭代的下一個元素,並把指標向後移動一位。

  Collection介面描述了一個抽象方法iterator方法,所有Collection子類都實現了這個方法,並且有自己的迭代形式。

  進行程式碼演示:

//1,建立集合物件。
Collection<String> coll =newArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");

//2.獲取容器的迭代器物件。通過iterator方法。
Iterator it = coll.iterator();

//3,使用具體的迭代器物件獲取集合中的元素。參閱迭代器的方法
while(it.hasNext()){
System.out.println(it.next());
}

/*
迭代器for迴圈的形式的使用
for(Iterator it = coll.iterator(); it.hasNext(); ) {
System.out.println(it.next());
}
*/

  注意:在進行集合元素取出時,如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。