java中ArrayList的兩種排序方法實例
前言
由於其功能性和靈活性,ArrayList是 Java 集合框架中使用最為普遍的集合類之一。ArrayList 是一種 List 實現,它的內部用一個動態數組來存儲元素,因此 ArrayList 能夠在添加和移除元素的時候進行動態的擴展和縮減。你可能已經使用過 ArrayList,因此我將略過基礎部分。如果你對 ArrayList 還不熟悉,你可以參考它的 API 文檔,可以很容易理解在 ArrayList 上執行基本的操作。
1.ArrayList使用排序的初衷
我們知道ArrayList的好處是可以不用限定容器的大小,他會根據元素的增加自己擴大。但是存儲進去的數據類型都會變成object,雖然每個元素有自己的index,但不像數組的下標可以更加方便的操作。那我們平時學習的選擇排序啊快速排序啊都是對數組進行操作。最開始的笨辦法就是把list中的數據傳給數組排序好瞭再傳回來嘍。但是這樣效率真的下降的不是幾倍,是幾十倍啊真的不能這樣來。查瞭點資料和案例在這裡總結一下。
2.對一個ArrayList中的數組進行排序。
首先來看下Collection的幫助文檔:
在這裡順便補充下ArrayList和Collection的關系:
具體的使用代碼如下:
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class compre { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n; ArrayList al=new ArrayList(); System.out.println("請輸入需要的個數"); n=scan.nextInt(); System.out.println("請逐一輸入"); for(int i=0;i<n;i++) { al.add(i,scan.nextInt()); } System.out.println("你輸入的數字是:"); for(int i=0;i<al.size();i++) { int temp=(int)al.get(i); System.out.print(temp+" "); } Collections.sort(al);//針對一個ArrayList內部的數據排序 System.out.println(); System.out.println("經過排序後:"); for(int i=0;i<al.size();i++) { int temp=(int)al.get(i); System.out.print(temp+" "); } } }
運行結果:
3.多個ArrayList中的元素進行排序
class SortByName implements Comparator { public int compare(Object o1, Object o2) { Student s1 = (Student) o1; Student s2 = (Student) o2; return s1.getName().compareTo(s2.getName()); } }
class SortByAge implements Comparator { public int compare(Object o1, Object o2) { Student s1 = (Student) o1; Student s2 = (Student) o2; return s1.getAge().compareTo(s2.getAge()); // if (s1.getAge() > s2.getAge()) // return 1; // return -1; } }
總結
到此這篇關於java中ArrayList兩種排序的文章就介紹到這瞭,更多相關java ArrayList排序方法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- java集合進行排序的方式總結
- Java集合類之TreeSet的用法詳解
- Java List的sort()方法改寫compare()實現升序,降序,倒序的案例
- Java ArrayList中存放引用數據類型的方式
- java使用IO流對數組排序實例講解