隨筆-9  評論-168  文章-266  trackbacks-0
          1. 描述:
          1.1 概述
          java.util.Collections類:“包含可以操作或返回集合的專用靜態類。 
          1.2 所含方法
          Iterator, ArrayList, Elements, Buffer, Map,Collections

          列子:
          import java.util.ArrayList;
          import java.util.Collection;
          import java.util.Collections;
          import java.util.Comparator;
          import java.util.List;

          public class CollectionsSort {
          public CollectionsSort() {

          }

          public static void main(String[] args) {
          double array[] = {111, 111, 23, 456, 231 };
          List list = new ArrayList();
          List li = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          //list.add(""+array[i]);
          }
          double arr[] = {111};
          for(int j=0;j<arr.length;j++){
          li.add(new Double(arr[j]));
          }
          }

          2. 具體操作
          1) 排序(Sort)
          使用sort方法可以根據元素的自然順序 對指定列表按升序進行排序。列表中的所有元素都必須實現 Comparable 接口。此列表內的所有元素都必須是使用指定比較器可相互比較的
          double array[] = {112, 111, 23, 456, 231 };
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections.sort(list);
          for (int i = 0; i < array.length; i++) {
             System.out.println(li.get(i));

          //結果:112,111,23,456,231
          2) 混排(Shuffling)
          混排算法所做的正好與 sort 相反: 以隨機的方式排列 List 中元素。
          Collections.Shuffling(list)
          double array[] = {112, 111, 23, 456, 231 };
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections.shuffle(list);
          for (int i = 0; i < array.length; i++) {
             System.out.println(li.get(i));
          }
          //結果:112,111,23,456,231
          3) 反轉(Reverse)
                 使用Reverse方法可以根據元素的自然順序 對指定列表按降序進行排序。
          Collections.reverse(list)
          double array[] = {112, 111, 23, 456, 231 };
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections. reverse (list);
          for (int i = 0; i < array.length; i++) {
             System.out.println(li.get(i));
          }
          //結果:231,456,23,111,112

          4) 替換所有的元素(Fill)
          使用指定元素替換指定列表中的所有元素。
          String str[] = {"dd","aa","bb","cc","ee"};
          for(int j=0;j<str.length;j++){
          li.add(new String(str[j]));
          }
          Collections.fill(li,"aaa");
          for (int i = 0; i < li.size(); i++) {
          System.out.println("list[" + i + "]=" + li.get(i));

          }
          //結果:aaa,aaa,aaa,aaa,aaa

          5) 拷貝(Copy)
          用兩個參數,一個目標 List 和一個源 List, 將源的元素拷貝到目標,并覆蓋它的內容。目標 List 至少與源一樣長。如果它更長,則在目標 List 中的剩余元素不受影響。
          Collections.copy(list,li): 后面一個參數是目標列表 ,前一個是源列表
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          List li = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          double arr[] = {1131,333};
          String str[] = {"dd","aa","bb","cc","ee"};
          for(int j=0;j<arr.length;j++){
          li.add(new Double(arr[j]));
          }
          Collections.copy(list,li);
          for (int i = 0; i <list.size(); i++) {
          System.out.println("list[" + i + "]=" + list.get(i));
          }
          //結果:1131,333,23,456,231

          6) 返回Collections中最小元素(min)
          根據指定比較器產生的順序,返回給定 collection 的最小元素。collection 中的所有元素都必須是通過指定比較器可相互比較的
          Collections.min(list)
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections.min(list);
          for (int i = 0; i <list.size(); i++) {
          System.out.println("list[" + i + "]=" + list.get(i));
          }
          //結果:23

          7) 返回Collections中最小元素(max)
          根據指定比較器產生的順序,返回給定 collection 的最大元素。collection 中的所有元素都必須是通過指定比較器可相互比較的
          Collections.max(list)
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections.max(list);
          for (int i = 0; i <list.size(); i++) {
          System.out.println("list[" + i + "]=" + list.get(i));
          }
          //結果:456

          8) lastIndexOfSubList
          返回指定源列表中最后一次出現指定目標列表的起始位置
          int count = Collections.lastIndexOfSubList(list,li);
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          List li = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          double arr[] = {111};
          String str[] = {"dd","aa","bb","cc","ee"};
          for(int j=0;j<arr.length;j++){
          li.add(new Double(arr[j]));
          }
          Int locations = Collections. lastIndexOfSubList (list,li);
          System.out.println(“===”+ locations);
          //結果 3

          9) IndexOfSubList
          返回指定源列表中第一次出現指定目標列表的起始位置
          int count = Collections.indexOfSubList(list,li);
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          List li = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          double arr[] = {111};
          String str[] = {"dd","aa","bb","cc","ee"};
          for(int j=0;j<arr.length;j++){
          li.add(new Double(arr[j]));
          }
          Int locations = Collections.indexOfSubList(list,li);
          System.out.println(“===”+ locations);
          //結果 1

          10) Rotate
          根據指定的距離循環移動指定列表中的元素
          Collections.rotate(list,-1);
          如果是負數,則正向移動,正數則方向移動
          double array[] = {112, 111, 23, 456, 231 };
          List list = new ArrayList();
          for (int i = 0; i < array.length; i++) {
          list.add(new Double(array[i]));
          }
          Collections.rotate(list,-1);
          for (int i = 0; i <list.size(); i++) {
          System.out.println("list[" + i + "]=" + list.get(i));
          }
          //結果:111,23,456,231,112
          posted on 2010-05-18 17:45 紫蝶∏飛揚↗ 閱讀(528) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 金堂县| 长顺县| 贵溪市| 内乡县| 江川县| 望谟县| 克什克腾旗| 中山市| 宾川县| 沧州市| 嘉祥县| 黄浦区| 铜梁县| 英吉沙县| 阿拉善右旗| 奉节县| 建瓯市| 芒康县| 红安县| 兰坪| 光泽县| 德惠市| 静海县| 东海县| 东兰县| 济阳县| 镇宁| 灵台县| 台湾省| 宝兴县| 柘荣县| 扶余县| 马公市| 泰兴市| 黄陵县| 怀远县| 司法| 白城市| 桂林市| 城步| 广丰县|