1.Collections
(1)Collections:集合架構的工具類。裡面定義的都是靜态方法。一些常用基本的方法:
1.排序,例:
Collections.sort(list);
Collections.sort(list,new StrLenComparator());
2.二分查找,例:
Collections.binarySearch(list,"aaaa");
3.取最大值,例:
Collections.max(list)
4.置換位置,例:
Collections.swap(list,1,2);
Collections.shuffle(list);随機置換,像洗牌,擲篩子。
5反轉
reverseOrder();可傳回指定比較器的逆序,或者自然順序的逆序。
reverse();
6.替換 fill();
(2)Collections和Collection有什麼差別?
Collection是集合架構中的一個頂層接口,它裡面定義了單列集合的共性方法。它有兩個常用的子接口,List:對元素都有定義索引。有序的。可以重複元素。Set:不可以重複元素。無序。
Collections是集合架構中的一個工具類。該類中的方法都是靜态的提供的方法中有可以對list集合進行排序,二分查找等方法。通常常用的集合都是線程不安全的。因為要提高效率。如果多線程操作這些集合時,可以通過該工具類中的同步方法,将線程不安全的集合,轉換成安全的。
2.Arrays
Arrays:用于操作數組的工具類。裡面都是靜态方法。
(1)将數組變成list集合
Arrays.asList(arr)把數組變成list集合有什麼好處?
可以使用集合的思想和方法來操作數組中的元素。
注意1:将數組變成集合,不可以使用集合的增删方法。因為數組的長度是固定。contains(); get(); indexOf(); subList();如果你增删。那麼會反生UnsupportedOperationException。
注意2:如果數組中的元素都是對象。那麼變成集合時,數組中的元素就直接轉成集合中的元素。
如果數組中的元素都是基本資料類型,那麼會将該數組作為集合中的元素存在。
(2)集合變數組:Collection接口中的toArray方法。
1,指定類型的數組到底要定義多長呢?
當指定類型的數組長度小于了集合的size,那麼該方法内部會建立一個新的數組。長度為集合的size。
當指定類型的數組長度大于了集合的size,就不會新建立了數組。而是使用傳遞進來的數組。是以建立一個剛剛好的數組最優。
2,為什麼要将集合變數組?
為了限定對元素的操作。不需要進行增删了。
3.增強for循環
格式:
for(資料類型 變量名 : 被周遊的集合(Collection)或者數組){}
對集合進行周遊。
隻能擷取集合元素。但是不能對集合進行操作。
疊代器除了周遊,還可以進行remove集合中元素的動作。如果是用ListIterator,還可以在周遊過程中對集合進行增删改查的動作。
傳統for和進階for有什麼差別呢?
進階for有一個局限性。必須有被周遊的目标。建議在周遊數組的時候,還是希望是用傳統for。因為傳統for可以定義腳标。
4.可變參數
JDK1.5版本出現的新特性。方法的可變參數。在使用時注意:可變參數一定要定義在參數清單最後面。
可變參數:其實就是上一種數組參數的簡寫形式。不用每一次都手動的建立數組對象。隻要将要操作的元素作為參數傳遞即可。
隐式将這些參數封裝成了數組。
代碼圖例:
5.靜态導入
當類名重名時,需要指定具體的包名。
當方法重名是,指定具備所屬的對象或者類。
例:import static java.util.Arrays.*;//導入的是Arrays這個類中的所有靜态成員。