黑马程序员——Collection 接口和Collections类

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Collection 接口是集合层次结构中的根接口,Set,List 都是其派生出来的子接口。

      它定义了在集合中的添加,清除,遍历元素的操作。

            Collections类完全由在集合上进行操作或返回集合的静态方法组成,其中很多      方法都是多态算法,这是一个能给编程带来很大好处的类,提高了代码的重用率。例如:把一副扑克牌打乱:Collections.shuffle(cards);

Collections类:

示例:

package com.summary.collection;

 

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

import java.util.Random;

 

public class CollectionsDemo {

  

   public static void main(String[] args) {

      List<String> list1 =new ArrayList<String>(3);

      List<String> list2 =new ArrayList<String>(3);

     

      String[] str = {"aaa","bb","cccc"};

      Collections.addAll(list1,str);//将所有指定元素添加到指定 collection

     

      System.out.println(list1);//[aaa, bb, cccc]

      int idx1 =Collections.binarySearch(list1,"a",new Comparator<String>() {//二分法查找

         public int compare(String o1, String o2) {

 

            return o1.length() -o2.length();

         }

      });

      System.out.println(idx1);//1没找到返回 -1

     

      int idx2 =Collections.binarySearch(list1,"bb");

      System.out.println(idx2);//1

     

      Collections.addAll(list2,str);

      Collections.copy(list2,list1);//做复制操作的时候,要确保两个list列表的长度必须相等,不然会抛出如下异常:

      //Exception in thread "main"java.lang.IndexOutOfBoundsException: Source does not fit indest

      System.out.println(list2);

     

      Collections.fill(list2,"f");//[aaa,bb,cccc]//以指定的元素填充列表

      System.out.println(list2);//[f, f, f]

     

      Collections.sort(list1,new Comparator<String>(){//根据指定的比较器对list进行排序

         public int compare(String o1, String o2) {

           

            return o1.length() -o2.length();

         } 

      });        

      System.out.println(list1);

     

      Collections.shuffle(list1);//随机洗乱列表中的元素

      System.out.println(list1);//[bb,aaa,cccc]

      Collections.shuffle(list1,new Random());

      System.out.println(list1);//[cccc,bb,aaa]

     

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值