java集合架構03

來源:互聯網
上載者:User

標籤:.sh   nbsp   shuf   迴圈   字串數組   err   隨機   tostring   src   

Collections工具類的使用

public class News implements Comparable {    private int id;  //新聞編號    private String title;  //新聞標題        @Override    public String toString() {        return "新聞 [編號=" + id + ", 標題=" + title + "]";    }        public News() { //無參構造        super();    }    public News(int id, String title) { //帶參構造        super();          this.id = id;        this.title = title;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    //重寫 排序的規則    升序    @Override    public int compareTo(Object o) {          News news=(News) o;          if (news.getId()==this.id) {            return 0;         }else if (news.getId()<this.id) {            return 1;  // 降序  return -1;        }else {            return -1; // 降序  return 1;        }    }}

建立測試類別

public class CollectionsTest {    public static void main(String[] args) {        /*         * 操作集合的工具類Collections         *          */        //建立一個集合        List<String> list=new ArrayList<String>();        list.add("b");        list.add("d");        list.add("c");        list.add("a");        System.out.println("沒有排序====》"+list);  //插入時候的順序        //對集合進行隨機排序        Collections.shuffle(list);        //開獎號碼   136  順序必須對      631不對         System.out.println("隨機排序====》"+list);        //按照字母的升序排列        Collections.sort(list);         System.out.println("升序====》"+list);         //降序  也是必須在升序之後        Collections.reverse(list);        System.out.println("降序====》"+list);         //查詢 "b"在集合中的位置  必須先升序 排列之後再查詢        Collections.sort(list);         System.out.println(Collections.binarySearch(list, "a"));        System.out.println("****************************");        List<News> news=new ArrayList<News>();  //想實現對象的排序        news.add(new News(3, "新聞3"));        news.add(new News(1, "新聞1"));        news.add(new News(4, "新聞4"));        news.add(new News(2, "新聞2"));        for (News news2 : news) {            System.out.println(news2);        }        /*         * 如果News沒有重寫Comparable介面中的compareTo()是編譯報錯的!         * 我們必須重寫compareTo() 定義規則         */        Collections.sort(news);        System.out.println("對象排序之後.........");        for (News news2 : news) {            System.out.println(news2);        }    }        @Test    public  void  test1(){        //通過String類中的split()把字串轉換成字串數組        String[] str1="a b c d d d".split(" ");        //把數群組轉換成集合        List<String> asList = Arrays.asList(str1);        System.out.println(asList);        String[] str2="c d".split(" ");        List<String> asList2= Arrays.asList(str2);        //最後一次出現的位置        System.out.println(Collections.lastIndexOfSubList(asList, asList2));        //首次出現的位置        System.out.println(Collections.indexOfSubList(asList, asList2));    }        @Test    public  void  test2(){        String[] str1="a b c d e f".split(" ");        //把數群組轉換成集合        List<String> list = Arrays.asList(str1);        System.out.println(list);        //集合中的元素向後移distance個位置,之後被覆蓋的元素迴圈前移        Collections.rotate(list, 2);        System.out.println(list);    }}

 3.map遍曆的效率比較

 

@Testpublic  void  test(){       Map<String, Object> map=new HashMap<String, Object>();        for (int i = 0; i <1000000; i++) {            map.put("key"+i, "value"+i);        }       //擷取當前毫秒數       Long a= System.currentTimeMillis();       //遍曆map   首先擷取所有key的集合       Set<String> set = map.keySet();       for (String key : set) {        map.get(key); //根據key取得value       }       //擷取當前毫秒數       Long b= System.currentTimeMillis();      System.out.println("使用keySet遍曆的時間是:"+(b-a));          //使用entry遍曆     效率最高的      Set<Entry<String, Object>> entrySet = map.entrySet();      for (Entry<String, Object> entry : entrySet) {         entry.getValue();      }      //擷取當前毫秒數       Long c= System.currentTimeMillis();       System.out.println("使用entrySet遍曆的時間是:"+(c-b));}

 漢字的排序

public class ListTest {    public static void main(String[] args) {     //實現都漢字的排序   傳入一個語言環境          Comparator<Object> collator=Collator.getInstance(Locale.CHINA);        ArrayList<String> list=new ArrayList<String>();        list.add("你好");        list.add("好");        list.add("啊");        list.add("它好");        //工具類        Collections.sort(list, collator);        for (String string : list) {            System.out.println(string);        }    }}

 

java集合架構03

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.