1. 程式人生 > 實用技巧 >java 常用的API

java 常用的API

Scanner類
一個可以使用正則表示式來解析基本資料型別和字串型別的簡單文字掃描器

 檢視類
java.util.Scanner:需要匯入java.util
檢視構造方法
public Scanner(InputStream source);構造一個新的Scanner物件,他生成的值是從指定的輸入流中掃描的
檢視成員方法
public int nextInt():將輸入的資訊的下一個標記掃描為一個int型別值

Random類

 此類的例項主要是用於生成偽隨機數

 檢視類:
java.util.Random 該類匯入才能使用
檢視構造方法:
public Random();常見一個新的隨機數生成器
檢視成員方法:
public int nextInt(int n)返回一個偽隨機整數,範圍在[0 --- n-1]
public double nextDouble();返回一個偽隨機小數,範圍在[0.0 --- 1.0)

ArrayList類

  java.util.ArrayList類是一個【大小可變的陣列】的實現,裡面儲存的資料稱為元素.該類提供了一些常用的api方法來操作內部儲存的元素

ArrayList類的使用步驟:
檢視類
java.util.ArrayList<E>:該類也是需要import匯入後才能使用
檢視構造方法:
public ArrayList();構造一個初始容量為10的空列表
public ArrayList(int initialcapacity)構造一個指定的初始容量的空列表;
檢視成員方法:
public boolean add (E e)將指定的元素新增到此列表的尾部。
public void add(int index,E element)將指定的元素插入此列表中的指定位置。
public void clear()移除此列表中的所有元素。
public boolean contains(Object o) 如果此列表中包含指定的元素,則返回 true,否則返回false
public E get(int index) 返回此列表中指定位置上的元素。
public int indexOf(Object o) 返回此列表中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。
public boolean isEmpty() 如果此列表中沒有元素,則返回 true
public E remove(int index) 移除此列表中指定位置上的元素。
public E set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。
public int size()返回此列表中的元素數。

String類

  java.lang.String類代表字串,java程式中所有的字串文字,如“abc”都可以看作是String類的例項.
程式當中的所有雙引號字串,都是String類的物件.(沒有new,也是物件).

  建立String字串的常見3+1種方式
三種構造方法
public String();建立一個空白的字串,不包含任何內容.
public Stirng(Char[] array);根據字元陣列的內容,來建立對應的字串.
public Stirng(byte[] array);根據位元組陣列內容,來建立對應的字串.
一種直接建立
String str = "abc";//右邊直接用雙引號

  常用方法:【重點】
判斷功能方法
public boolean equals(Object anObject);將此字串與指定物件進行比較,(引數可以是任意值)
public boolean equalsIgnoreCase(String anObject);將此字串與指定的物件進行比較,不考慮大小寫

獲取功能
public int length();返回字串的長度
public String concat(String str);將指定的字串連線到該字串的末尾
public char charAt(int index);返回指定索引處的char值 索引起始值為0
public int indexOf(String str);返回指定的子字串第一次出現在該字串內的索引值"連續的"(返回-1就是沒有)
public String substring(int beginIndex);返回一個子字串,從beginIndex開始擷取該字串的末尾
新的字串 World是新的字串物件
public String substring(int beginIndex,int endIndex);返回一個子字串,從beginIndex區間擷取該字串
包含beginIndex索引值,不包含endIndex索引值---》[beginIndex,int endIndex)

轉換功能:
public char[] toCharArray();將此字串轉換成新的字元陣列
public byte[] getBytes();適用平臺預設的字符集將該字串編碼轉換成新的位元組陣列.
public String replace(CharSequence oldString,CharSequence newString);

Arrays類
java.util.Arrays 此類主要是用來運算元組的,裡面提供了很多的運算元組的API方法,如排序和搜尋功能.
其所有的均為靜態方法呼叫起來非常簡單

運算元組的方法
1.public static Stirng toString(int[] arr);返回指定陣列內容的字串表示形式
2.public static void sort(int[] arr);對指定的int陣列按照數字升序排序,從小到大
3.public static int binarySearch(int[] arr,int key);//使用二分搜尋法來搜尋指定的 int 型陣列,以獲得指定的值
此時key指的是要搜尋的值,而方法返回值宣告的int指的是搜尋值對應的索引值.
備註:使用binarySearch()方法.搜尋陣列當中的元素時,陣列必須是有序的.【升序】
得到的索引值是排序後的新陣列的索引值
沒有找到對應的元素值,得到的索引值是負值
4.public static void fill(int[] arr,int val);將指定的 int 值分配給指定 int 型陣列的每個元素。填滿

Math類
概述:
java.util.Math 包含了用於執行基本數學運算的方法,如:指數,冪次方,對數,平方根,三角函式等運算
裡面的方法均是靜態方法,並且也不需要建立物件,呼叫起來非常方便.
基本的運算方法
1.public static double abs(double a);返回double值的絕對值
2.public static double ceil(double a);返回大於等於引數的最小整數.往上取整
3.public static double floor(double a);返回小於等於引數的最小整數.往下取整
4.public static long round(double a);返回最接近引數的long型別值(四捨五入)負數(五舍六入)

Object類
java.lang.Object
類Object 是類結構層次的根類(父類)
每個類(Person,People,Student,Animal......String......)都是Object類的子類
所有物件(包括陣列)都實現了Object類的方法


重寫toString
Student student = new Student("小劉",20);
//列印這個student物件

System.out.println(student);
// com.zhiyou100.api.object.Student@15db9742邏輯地址值
// 簡明但易於讀懂的資訊表示式
// 當重寫之後,呼叫的就是重寫之後的toString方法
// Student:{name = 小劉,age = 20}
// 當列印物件是,系統認為你是要檢視該物件的成員資訊,那必然呼叫toString()方法,
// 此時toString方法,可以省略不寫,但是這個toString方法名不能改變

重寫toString方法
直接列印物件產看的是這個物件表示的記憶體地址值是沒有意思,我們想檢視的是該物件中的資訊
應該列印物件中的成員資訊(name,age)
@Override
public String toString(){
return "Student:{"+"id = "+id+",name = "+ name +",age = "+ age+"}";
}

重寫equals
Object類中的equals,預設比較是兩個物件的地址值,沒有意義
所以我們需要重寫equals方法,比較兩個物件的成員變數(name,age)
問題:
隱含一個多型
多型的弊端;無法使用子類獨有的內容(屬性和方法)
解決辦法:向下轉型
伴隨著轉型失敗 可能會丟擲類轉換異常ClassCastException
解決辦法:使用java提供的關鍵字instanceof型別判斷

重寫Object類中的equals()方法
@Override
public boolean equals(Object object){
// 比較方法的呼叫者和方法的引數
// == 比較的地址值
// 如果兩個地址一樣直接返回true
if (this == object) {
return true;
}
if (object == null) {
return false;
}
}


if (object instanceof Student) {
//使用向下轉型
Student student = (Student)object;
//比較兩個物件的成員變數是否相等
boolean result = this.name.equals(student.getName())&&this.age == student.age;
return result;
}
//如果object不屬於Student型別,沒有比較可言
return false;
}

重寫hashCode()
@Override
public int hashCode(){
//通過Objects類生成hash值
int hash = Objects.hash(name,age);//如果name和age值相等
return hash;
}

Date類:
定義一個日期類

java.util.Date 表示時間和日期的類
Date可以獲取到精確毫秒值的特定時間
毫秒:千分之一秒就是毫秒 1秒等於1000毫秒

 一天 = 24*60*60*1000 = 86400000
2020-11-27 19:26:30:333 瞬間

毫秒值的作用:可以對時間和日期做一個精確的計算

注意:
中國屬於東八區 會在標準時間之上在增加八小時 上海或者北京
1970年1月1日 08:00:00

 構造方法:

  public Date() 分配 Date 物件並初始化此物件,以表示分配它的時間(精確到毫秒)。獲取當前時間

  public Date(longdate) 分配 Date 物件並初始化此物件,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。放毫秒值,得到時間

 成員方法:

  long、  

long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 物件表示的毫秒數。