zoukankan      html  css  js  c++  java
  • Collections工具类

    Collections 是一个操作 Set、List 和 Map 等集合的工具类。

    Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。

    Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题。

        static class SynchronizedSet<E>
              extends SynchronizedCollection<E>
              implements Set<E> {
            private static final long serialVersionUID = 487447009682186044L;
    
            SynchronizedSet(Set<E> s) {
                super(s);
            }
            SynchronizedSet(Set<E> s, Object mutex) {
                super(s, mutex);
            }
    
            public boolean equals(Object o) {
                if (this == o)
                    return true;
                // 同步代码块,Vector、Hashtable都是同步方法        
                synchronized (mutex) {return c.equals(o);}
            }
            public int hashCode() {
                // 同步代码块,Vector、Hashtable都是同步方法
                synchronized (mutex) {return c.hashCode();}
            }
        }

    Collections类中的方法有:

    min()、max()、copy()、sort()、binarySearch()、reverse() —— 反转、shuffle() —— 乱序

    fill() ——把一个对象填充到list里的每一个单元、swap(List,int, int):交换元素

    int frequency(Collection,Object):返回指定集合中指定元素的出现次数

    boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所有旧值

    public static <T>
    int binarySearch(List<? extends Comparable<? super T>> list, T key) {
        if (list instanceof RandomAccess || list.size()<BINARYSEARCH_THRESHOLD)
            // 适用于ArrayList
            return Collections.indexedBinarySearch(list, key);
        else
            // 适用于LinkedList
            return Collections.iteratorBinarySearch(list, key);
    }
  • 相关阅读:
    页面跳转刷新
    表格表头绘制对角线(不固定表格宽高)
    发送邮件的工具类
    重写equals()和hashCode()
    设计模式--原型模式[转载]
    设计模式--外观模式
    设计模式--代理模式
    js处理json js递归
    MySQL锁详解
    开发一个微信小程序实例教程
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10444333.html
Copyright © 2011-2022 走看看