1.Map
- Map是集合容器,存放的元素有鍵與值兩部分組成,通過鍵可以找到所對應的值,鍵和值必須是引用資料型別,鍵是唯一的,不能重複,沒有順序。
- HashMap是Map的實現類.
- Map的新增,刪除,查詢
//建立Map物件
Map<String, String> map = new HashMa p<String,String>();
//給map中新增元素
map.put("1", "Monday");
map.put("7", "Sunday");
System.out.println(map);
//當給Map中新增元素,會返回key對應的原來的 value值,若key沒有對應的值,返回null System.out.println(map.put("1", "Mo n")); // Monday
System.out.println(map); // {星期日=Su nday, 星期一=Mon} 根據指定的key獲取對應的value
String en = map.get("1");
System.out.println(en); // Sunday 根據key刪除元素,會返回key對應的value值
String value = map.remove("1");
System.out.println(value); // Sunday
System.out.println(map); // {1=Mon}
- Map的遍歷
Map<String, String> map = new HashMa p<String,String>();
//給map中新增元素 map.put("鄧超", "孫儷"); map.put("李晨", "范冰冰"); map.put("劉德華", "柳巖"); //獲取Map中的所有key Set<String> keySet = map.keySe t(); for(String key : keySet){ System.out.println(map.get(ke y)) }
Calender
/* public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar> 抽象類 */
//建立物件 Calendar calendar = Calendar.getInstance(); //get(int filed) //獲取年月日 時分秒資訊 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1;//從0開始算起,最大11;0代表1月,11代表12月
int date = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println(year+"年"+month+"月"+date+"日 "+hour+":"+minute+":"+second); //2020年7月1日 11:14:46
//指定欄位增加值
Calendar c = Calendar.getInstance();
//修改當前時間為3天后
c.add(Calendar.DATE, 3);
//修改當前時間為5小時後
c.add(Calendar.HOUR, 5);
//轉換日期型別 Date time = calendar.getTime(); System.out.println(time); // Wed Jul 01 11:16:10 CST 2020 //設定時間為2020年5月7日 calendar.set(Calendar.YEAR, 2020); calendar.set(Calendar.MONTH, 5); calendar.set(Calendar.DATE, 7); int year2 = calendar.get(Calendar.YEAR); int month2= calendar.get(Calendar.MONTH); int date2 = calendar.get(Calendar.DATE); System.out.println(year2+"年"+month2+"月"+date2+"日");//2020年5月7日
//使用日曆計算平年閏年更為方便
Calendar c = Calendar.getInstance();
c.set(2000, 2, 1);
c.add(Calendar.DATE, -1);
int a = c.get(Calendar.DATE);
System.out.println(a);
Date
建構函式 :public Date()
分配一個
Date
物件並對其進行初始化,以便它表示分配的時間,測量到最近的毫秒。System.currentTimeMillis()
;Date date1 = new Date();
System.out.println(date1);//當前日期
Date date2 = new Date(12354356000000L);
System.out.println(date2);//指定日期
//日期和毫秒的轉換
Date date = new Date();
long time = date.getTime();
System.out.println(time);//1499169262875
DateFormat
格式化日期類,通常用於日期和String的轉換
Date date2 = new Date(); //DateFormat抽象類,SimpleDateFormat是DateF ormat實現類
DateFormat df = new SimpleDateFormat("yyy y-MM-dd E HH:mm:ss a");
String str = df.format(date2);
System.out.println(str);//2017-07-04 星期 二 20:04:43 下午
日期字串之間的抓換
Date date = new Date(12354356000000L);
DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);
String str = df.format(date);
String str = ”2020年12月11日”;
DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);
Date date = df.parse(str);
System
public static void main(String[] args) {
// 獲取當前時間的毫秒值
System.currentTimeMillis();
// 結束當前程式
System.exit(0);
// 陣列的拷貝
System.currentTimeMillis();//取當前系統時間與1970年01月01日00:00點 之間的毫秒差值
System.exit(0);//結束程式,通常傳入0記為正常狀 態,其他為異常狀態
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10}; //源陣列,源陣列的起始位置,目標陣列,目標陣列的起 始位置,目標陣列的長度
System.arraycopy( src, 0, dest, 0, 3); //src陣列元素[1,2,3,4,5] //dest陣列元素[1,2,3,9,10]
}
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(); //得到的 是[0,1)的小數 //鎖定範圍獲取 a-b整數 int a = (int)(Math.random()*(b-a+1))+a
包裝類
包裝類的作用實現基本資料型別和字串之間的轉換字串,基本資料型別,
包裝型別轉換字串轉換基本資料型別需要呼叫包裝類 包裝類.parse基本資料型別("字串");
int a = Integer.parseInt("12");
基本資料型別轉換字串 String str = ""+基本資料型別;
或者 String str =String.valueOf(34);
基本資料型別轉換包裝型別: Integer obj =Interger.valueOf(3);
包裝型別轉換基本資料型別: int a =obj.intValue();
jdk1.5以後系統提供自動裝箱:int和integer可以自動轉換
大資料運算
BigInteger
大資料整數的加,減,乘,除
//大資料封裝為BigInteger物件 BigInteger big1 = new BigInteger("12345 678909876543210"); BigInteger big2 = new BigInteger("98765 432101234567890"); //add實現加法運算 BigInteger bigAdd = big1.add(big2); System.out.println(bigAdd); //subtract實現減法運算 BigInteger bigSub = big1.subtract(big 2); System.out.println(bigSub); //multiply實現乘法運算 BigInteger bigMul = big1.multiply(big 2);System.out.println(bigMul); //divide實現除法運算 BigInteger bigDiv = big2.divide(big1); System.out.println(bigDiv);
BigDecimal
有些時候操作小數的,會出現精度問題如
System.out.println(0.09+0.01);//0.0999999 9999999999
System.out.println(1.201*100);//120.10000 000000001 //大資料封裝為BigDecimal物件 BigDecimal big1 = new BigDecimal("0.09"); BigDecimal big2 = new BigDecimal("0.01"); //add實現加法運算 BigDecimal bigAdd = big1.add(big2); System.out.println(bigAdd ); BigDecimal big3 = new BigDecimal("1.0"); BigDecimal big4 = new BigDecimal("0.32"); //subtract實現減法運算 BigDecimal bigSub = big3.subtract(big4); System.out.println(bigSub); BigDecimal big5 = new BigDecimal("1.10 5"); BigDecimal big6 = new BigDecimal("100"); //multiply實現乘法運算 BigDecimal bigMul = big5.multiply(big6); System.out.println(bigMul); //divide實現除法 BigDecimal bigDiv = big5.divide(big6,2,Bi gDecimal.ROUND_UP);
Arrays
使用二分查詢搜尋指定int型別陣列 int[] arr = {1,3,4,5,6}; int index = Arrays.binarySearch(arr, 4); //index的值為2 int index2= Arrasy.binarySearch(arr, 2); //index2的值為-1 陣列升序排序 int[] arr = {1,5,9,3,7}; Arrays.sort( arr ); 將陣列的內容以字串形式呈現 int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str 的值為[1, 3, 5, 7, 9]
異常
如果產生異常的地方沒有對他處理,那麼會向上丟擲,拋向呼叫者,如果呼叫者沒有對異常作出處理,會給jvm處理,jvm會找到自己內部能不能識別到該異常資訊對應的類,如果找到了,會構建一個異常的物件,會把異常產生的原因,異常產生的位置,異常產生的內容封裝進該物件中在控制檯顯現出來,並且終止程式。
throwable類中
public String getMessage()返回此throwable的詳細訊息字串。在Throwable類的下的子類Error異常情況是無法解決的,屬於硬傷,作為程式設計師能夠解決的是Exception這種型別的異常情況。
Exception:
編譯期異常:通過使用整合開發工具在編寫程式的時候,就出現的異常問題,如果不處理,程式無法繼進行,需要程式設計師立刻對異常做出處理,否則無法編寫。
執行期異常:在編譯之後,程式在執行過程中產生的異常問題,JM把異常資訊丟擲,一般是由於邏輯錯誤導致的異常情況,通過優化你的程式碼可以解決掉的
編譯期異常:除了RunTimeException異常之外,其餘的都是編譯期異常。
執行期異常:
算術異常:Ari thmeticException
空指標異常:Null PointerException
越界異常:IndexOutOfBoundsException
類轉換異常:ClassCastException