1. 程式人生 > >java幾個常用類

java幾個常用類

引用型別String和StringBuffer

String型別的賦值理解

Int a=3;

a = 5;

這段程式碼的含義是:首先申請記憶體單元,命名為a 同時將3這個值儲存記憶體單元中,然後又將5這隻存入記憶體單元中,這個記憶體單元的之前的只在被賦值後就被修改了。

String str =new String(“abc”)

Str = “123”;

對於引用而言 賦值並不是改變與原來的引用物件的值 而只是調整了引用的關係 所以在使用“==”符號進行比較時 需要特別的注意

    publicstatic void main(String[] args) {
        String str=newString("abc");
        String str1=newString("abc");
        System.out.println(str ==str1);//比較地址
        System.out.println(str.equals(str1));//比較值

}
}

因為str和str1 引用的事不同的物件,所以str==str1

因為str和str1 引用的字串內容是相同的所以 str.equals(str1)為真。

String類常用的方法:eaquals,length,charAt(取字串裡面的一個字元),format(把字串格式化)substring(切割字串)indexof(找指定字元)lastindexof(返回最後一次出現在指定字元在此字串的索引)replace(新的字元代替老的字元所有)

擷取,trim(去除頭部尾部空白)



StringBuffer:append(在字串後面新增字元),insert(指定字串一個位置,然後插入字串),deleteCharAt(刪除一個字元),delete(從字串裡面刪除一節字串),replace(把字串的其中一節替換為傳入新的字串),setCharAt(找字串裡面的一個下標然後改變這個下標代表的值),reverse(字串反向排列)

1.2陣列物件

Arrays提供了陣列的常見操作,比如查詢,排序等,且他的方法都是靜態的,所以實際上他是一個工具類提供方法,方便程式設計。

Fill(把陣列內所有數改為你想改的數)sort(陣列排序 從小到大)

MATH類

靜態的常量e π

Abs絕對值,sprt平方根,Max最大,pow返回第一個引數的第二個引數次冪的值,min最小,floor向下取整,round(四捨五入,random(隨機生成)

1.3日期類

public static void main(String[]args) {
      
Calendar calendar =Calendar.getInstance();//獲取當前時間的所有資訊
       /* System.out.println(calendar);
       System.out.println(calendar.get(Calendar.YEAR));
       System.out.println(calendar.get(Calendar.MARCH));
       System.out.println(calendar.get(Calendar.DATE));
       System.out.println(calendar.get(Calendar.HOUR));
       System.out.println(calendar.get(Calendar.MINUTE));
       System.out.println(calendar.get(Calendar.SECOND));*/
       calendar.setLenient(

false);//關閉預設模式如果設定方法會報錯
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
       
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));
       
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
       
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
   
}
}

日期格式化輸出

    public staticvoid main(String[] args) {
        SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化排列時間Datedate = new Date();
        System.out.println(date);
        System.out.println(simpleDateFormat.format(date));
    }
}

1.4包裝類

為什麼要用包裝類,因為基礎型別和其他型別處理是有不同的

基礎型別的賦值,是直接修改變數裡面的值,準確的說,是修改了記憶體單元裡面的內容。

其他型別的賦值,是改變了引用的指向。

很多地方統一(尤其是範形),系統就提供了我們基本型別所對應的包裝類。

int-Integer

char-Character

其他六個型別首字母大寫就是包裝類

集合框架

2.1vector

Vector(向量):動態陣列

為什麼需要動態陣列很多時候 我們無法事先去確定陣列的元素個數 如果使用了靜態陣列,小了不夠用 大了會造成記憶體空間的浪費 這個時候我們就需要動態的陣列,可以按照一定增量來增加容量。

Vecton 的初始預設容量和增量都是10,可以通過他的構造方法來設定容量和增量,所謂的增量,就是在容量不夠時,增加的量。

Size、capacity、add

Remove<Int index>刪除指定位置的元素

Remove<Int object o>刪除指定元素 (第一個)

Contains 輸入一個數查詢是否有 有了返回true 沒有false

indexOf通過元素找下標
get通過下標找元素
trimToSize將容量調至最小

幾個常用方法




2.2棧stack

棧的特點:先進先出,後進後出

Push 增加

Peek  棧頂

Search 查詢

Pop 刪除棧頂

   Stack<Integer> stack = new Stack<>();
            stack.push(1);//增加stack.push(2);
            stack.push(3);
            stack.push(4);
            stack.push(5);
            stack.push(6);
    System.out.println(stack.peek());
   /*stack.pop();
   
System.out.println(stack.peek());*/
   
System.out.println(stack.search(6));
}

2.3List

List : 是一個介面 繼承自collection介面,常用的實現類:ArrayList、LinkList

public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);//新增list.add(8);
    System.out.println(list.size());//返回列表中的元素數System.out.println(list.contains(5));//如果有輸入的元素則輸出true
   
System.out.println(list.get(4));//返回列表指定位置的元素System.out.println(list.isEmpty());//如果列表不包含元素則返回false
}

2.4Set

Set也是一個介面,它表示一個無重複元素的集合,無序,唯一(它是通過判斷hashcode來判斷是否重複,如果得不到我們想要的結果,那就重寫equals 方法)

Set 的實現類:hashSet