java 集合框架的工具类Collections

2020-04-09 16:04:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

java 集合框架的工具类Collections

sort(),max(),binarySearch(),fill()

public class CollectionsDemo {
    public static void main(String[] args) {
        replaceAllDemo();
    }

    public static void replaceAllDemo(){
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("aaaa");
        list.add("z");
        list.add("kkk");
        list.add("qq");
        list.add("qq");
        System.out.println(list);
        Collections.replaceAll(list,"qq","aa");//指定元素替换  list.set()
        System.out.println(list);
        Collections.reverse(list);//反转
        System.out.println(list);
    }
    public static void fillDemo(){
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("aaaa");
        list.add("z");
        list.add("kkk");
        list.add("qq");
        list.add("qq");
        Collections.fill(list,"pp");  //[pp, pp, pp, pp, pp, pp],元素全部替换
        System.out.println(list);
    }
    //原理
    public static int halfSearch(List<String> list, String key) {
        int max, min, mid;
        max = list.size() - 1;
        min = 0;
        while (min <= max) {
            mid = (max + min) >> 1;
            String str = list.get(mid);
            int num = str.compareTo(key);
            if (num > 0)
                max = mid - 1;
            else if (num < 0)
                min = mid + 1;
            else return mid;
        }
        return -min - 1;
    }

    public static void binarySearchDemo() {
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("aaaa");
        list.add("z");
        list.add("kkk");
        list.add("qq");
        list.add("qq");
        Collections.sort(list);
        System.out.println(list);
        //搜索关键字的索引,如果它包含在列表中,则返回搜索键的索引; 否则,返回(-(插入点) - 1) 。 如果列表中的所有元素都小于指定的键,或list.size()。 插入点被定义为将键插入到列表中的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。
        int index = Collections.binarySearch(list, "aaaaa");
        System.out.println(index);
    }

    public static void maxDemo() {
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("aaaa");
        list.add("z");
        list.add("kkk");
        list.add("qq");
        list.add("qq");
        Collections.sort(list);
        System.out.println(list);
//        String max = Collections.max(list);  //自然排序最后的元素
        String max = Collections.max(list, new StrLenComparator());  //长度
        System.out.println(max);
    }

    public static void sortDemo() {
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("aaaa");
        list.add("z");
        list.add("kkk");
        list.add("qq");
        list.add("qq");
        System.out.println(list);
//        Collections.sort(list);  //自然排序
        Collections.sort(list, new StrLenComparator());  //传入比较器
        System.out.println(list);
    }
}

class StrLenComparator implements Comparator<String> {

    @Override
    public int compare(String o1, String o2) {
        if (o1.length() > o2.length())
            return 1;
        if (o1.length() < o2.length())
            return -1;
        return o1.compareTo(o2);
    }
}

 

 

 


原文链接:https://www.cnblogs.com/hongxiao2020/p/12667693.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java 为 Excel 中的行设置交替背景色

下一篇:拼多多面试题:如何用 Redis 统计独立用户访问量?