操作集合的工具类Collections
1 操作集合的工具类Collections
Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。
1.1 排序操作
- static void reverse(List<?> list): 反转指定列表中元素的顺序。
- static void shuffle(List<?> list): 使用默认随机源对指定列表进行置换。
- static <T extends Comparable<? super T>> void sort(List<T> list): 根据元素的自然顺序 对指定列表按升序进行排序。
- static <T> void sort(List<T> list, Comparator<? super T> c): 根据指定比较器产生的顺序对指定列表进行排序。
- static void swap(List<?> list, int i, int j): 在指定列表的指定位置处交换元素。
- static void rotate(List<?> list, int distance):根据指定的距离轮换指定列表中的元素。
|
ArrayList nums = new ArrayList(); nums.add(2); nums.add(-5); nums.add(3); nums.add(0); System.out.println( nums ); Collections.reverse(nums); System.out.println(nums); Collections.sort(nums); System.out.println( nums ); Collections.shuffle(nums); System.out.println( nums ); |
1.2 查找、替换操作
- static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key):使用二分搜索法搜索指定列表,以获得指定对象。
- static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll): 根据元素的自然顺序,返回给定 collection 的最大元素。
- static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp): 根据指定比较器产生的顺序,返回给定 collection 的最大元素。
- static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll):根据元素的自然顺序 返回给定 collection 的最小元素。
- static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp):根据指定比较器产生的顺序,返回给定 collection 的最小元素。
- static <T> void fill(List<? super T> list, T obj): 使用指定元素替换指定列表中的所有元素。
- static int frequency(Collection<?> c, Object o):返回指定 collection 中等于指定对象的元素数。
- static int indexOfSubList(List<?> source, List<?> target):返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
- static int lastIndexOfSubList(List<?> source, List<?> target):返回指定源列表中最后一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
- static <T> boolean replaceAll(List<T> list, T oldVal, T newVal): 使用另一个值替换列表中出现的所有某一指定值。
1.3 同步控制
|
Collection c = Collections.synchronizedCollection( new ArrayList() ); List list = Collections.synchronizedList(new ArrayList()); Set s = Collections.synchronizedSet(new HashSet()); Map m = Collections.synchronizedMap(new HashMap()); |
1.4 设置不可变集合
Collections提供了如下三个类方法来返回一个不可变的集合:
- emptyXXX():返回一个空的、不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
- singletonXXX():返回一个只包含指定对象的,不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
- unmodifiableXxx():返回指定集合对象的不可变试图,此处的集合即可以是List,也可以是Set,还可以是Map。
操作集合的工具类Collections的更多相关文章
- java之操作集合的工具类--Collections
Collections是一个操作Set.List和Map等集合的工具类. Collections中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控 ...
- Java-集合第六篇操作集合的工具类Collections
1.Java提供了一个操作Set.List.Map等集合的工具类:Collections. 工具类中提供的方法主要针对Set.List.Map的排序.查询.修改等操作,以及将集合对象设置为不可变.对集 ...
- 操作集合的工具类:Collections
Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序.查询和修改等操作,还提供了将集合对象置为不可变.对集合对象实现同步控制等方法 ...
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...
- java基础37 集合框架工具类Collections和数组操作工具类Arrays
一.集合框架工具类:Collections 1.1.Collections类的特点 该工具类中所有的方法都是静态的 1.2.Collections类的常用方法 binarySearch(List< ...
- Java 集合的工具类Collections的常用方法
Collections类 java.utils.Collections是集合工具类,用来对集合进行操作. Collections类的常用方法 这里介绍四个常用方法: addAll(Collection ...
- java集合框架工具类Collections,集合的操作
1 import java.util.*; public class asList { public static void main(String args[]) { // int arr[] = ...
- 集合框架工具类--Collections排序
package ToolCollectionsDemo; import java.util.ArrayList; import java.util.Collections; import java.u ...
- Java:集合工具类-Collections
Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...
随机推荐
- jquery ajax跨域请求详解
本文章来给大家详细jquery中的ajax跨域请求, 在JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式.分别是JQuery的jquery.ajax jsonp格式和jque ...
- css font-family 字体全介绍,\5b8b\4f53 宋体 随笔
font-family采用一种"回退"的形式来保存字体,可以写若干种字体.当第一种字体浏览器不支持的时候,会找第二种字体,一次类推. font-family字体分为两类: 特殊字体 ...
- 怎么做QQ、微信等消息气泡
主XML: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android ...
- delphi构造&析构调用顺序
_ClassCreate ->Create ->AfterConstruction(->DoCreate / OnCreate) BeforeDestruction(->DoD ...
- How to executing direct SQL statements [Axapta, AX4.0, AX2009, AX2012]
Today I want to talk about executing SQL statements in X++ on both the current AX database and exter ...
- C# 将\u1234类型的字符转化成汉字
用代码获取网页的json数据时,经常会出现\u1234等字符,其实我们是知道他是汉字的 可以用下面的方法将\u1234翻译成汉字 /// <summary> /// /// </su ...
- 【笔记】WPF实现ViewPager引导界面效果及问题汇总
最近在开发项目的首次使用引导界面时,遇到了问题,引导界面类似于安卓手机ViewPager那样的效果,希望通过左右滑动手指来实现切换不同页面,其间伴随动画. 实现思路: 1.界面布局:新建一个UserC ...
- JavaWeb之 JSP基础
什么是JSP JSP的全称是java server page, java服务页面.是提供java服务的页面~ 那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦 ...
- C 封装一个简单二叉树基库
引文 今天分享一个喜欢佩服的伟人,应该算人类文明极大突破者.收藏过一张纸币类型如下 那我们继续科普一段关于他的简介 '高斯有些孤傲,但令人惊奇的是,他春风得意地度过了中产阶级的一生,而 没有遭受到冷 ...
- 自己的php函数库
//判断数组中是否有元素为空的函数,支持多维数组,相似系统函数in_array(value,array,type) function is_null_array($arr) { if(!is_arra ...