zoukankan      html  css  js  c++  java
  • Collections

    Collections:用来操作Set,List和Map等集合的工具类,提供大量方法对集合进行排序,查找和修改等操作,还提供了将集合对象设置为不可变,对象和对象实现同步控制等方法

    Set,Map都有Tree系列来提供排序,所以Collections针对List实现sort等

    排序操作:

      对List集合元素进行排序:

      void reverse(List l):反转指定集合的元素

      void shuffle(List l):对集合元素进行随机排序,模拟洗牌动作

      void sort(List l):根据元素的自然顺序对指定集合进行升序排序

      void sort(List l, Comparator c):按c对集合排序

      void swap(List l, int i, int j):将集合中i处元素和j处元素进行调换

      void rotate(List l, int distance):当distance为正数时,将l集合后distance个元素整体移到前面;为负数时,将l前distance个元素整体移到后面。不会改变集合长度

      ArrayList ar = new ArrayList(); Collections.reverse(ar);

    查找操作:

      int binarySearch(List l, Object key):使用二分搜索法搜索指定List,获得指定对象在List中的索引,需要保证List中元素处于有序状态

      Object max(Collection coll):根据自然排序,返回集合中最大的元素

      Object max(Collection coll, Comparator c):根据c指定的顺序,返回最大的元素

      Object min(Collection coll):同上

      Object min(Collection coll, Comparator c):同上

    替换操作:

      void fill(List l, Object o):使用指定元素o替换指定List集合中的所有元素

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

      int indexOfSubList(List source, List target):返回子List对象在父List对象中第一次出现的索引,没有则返回-1

      int lastIndexOfSubList(List source, List target):返回子List对象在父List对象中最后一次出现的索引,如果父List中没有出现这样的子List,返回-1

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

    同步控制:

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

      Map m = Collectoins.synchronizedMap(new HashMap());

    设置不可变集合:

      Collections提供三个类方法来返回一个不可变集合:

      emptyXxx():返回一个空的,不可变的集合对象,此处的集合既可以是List,也可以是Set,SortedSet,还可以是Map,SortedMap等

      singletonXxx():返回一个只包含指定对象(只有一个或一项元素)的,不可变的集合对象此处的集合既可以是List,还可以是Map

      unmodifiableXxx():返回指定集合对象的不可变视图,此处的集合既可以是List,也可以是Set,SortedSet,还可以是Map,SortedMap等

      这三个方法参数是原有的集合对象,返回值的该对象的只读版本

      Map m = Collections.unmodifiableMap(map);

  • 相关阅读:
    ios-表视图-demo4-内容自己适应高度
    ios-表视图-demo3-单选
    应用管理的实现
    初识MVC和KVC
    Xcode的常用快捷键
    UI基础--手写代码实现汤姆猫动画
    UI基础--UIView常见属性之frame、center、bounds、transframe属性
    UI基础--UIButton、懒加载
    ios多线程
    ios多线程简介
  • 原文地址:https://www.cnblogs.com/zawjdbb/p/7061289.html
Copyright © 2011-2022 走看看