一、Collections简介

在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合

二、Collections类的常用方法及常量

No.
方法
类型
描述
1
public static final List EMPTY_LIST
常量
返回一个空的List集合
2
public static final Set EMPTY_SET
常量
返回空的Set集合
3
public static final Map EMPTY_MAP
常量
返回空的Map集合
4
public static <T> boolean addAll(Collection<? super T> c, T... a)
普通
为集合添加内容
5
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
普通
找到最大的内容,按比较器排序
根据元素的自然顺序,返回给定集合的最大元素
6
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
普通
找到集合中的最小内容,按比较器排序
根据元素的自然顺序 返回给定集合的最小元素
7
public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal)
普通
用新的内容替换集合的指定内容
使用另一个值替换集合中出现的所有某一指定值
8
public static void reverse(List<?> list)
普通
反转指定List 集合中元素的顺序。
9
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)
普通
查找集合中的指定内容

使用二分查找算法查找指定List 集合,以获得指
定对象的索引位置。

10
public static final <T> List<T> emptyList()
普通
返回一个空的List集合
11
public static final <K,V> Map<K,V> emptyMap()
普通
返回一个空的Map集合
12
public static final <T> Set<T> emptySet()
普通
返回一个空的Set集合
13
public static <T extends Comparable<? super T>> void sort(List<T> list)
普通
集合排序操作,根据Comparable接口进行排序

根据元素的自然顺序 对指定List 集合按升
序进行排序。

14
public static void swap(List<?> list,int i,int j)
普通
交换指定位置的元素

三、将指定List 集合中的元素顺序反转

package com.pb.demo2;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List; public class CollectionsTest1 { public static void main(String[] args) {
//声明集合并添加元素
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three"); System.out.println("=======正常遍历============");
for (String s : list) {
System.out.print(s+"\t");
}
System.out.println();
System.out.println("=======执行reverse方法============");
Collections.reverse(list);
for (String s : list) {
System.out.print(s+"\t");
} } }

四、sort 方法的作用是对指定List 集合按升序进行排序

package com.pb.demo2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class CollectionsTest2 { public static void main(String[] args) {
//声明集合并添加集
List<Integer> list = new ArrayList<Integer>();
list.add(7);
list.add(2);
list.add(5);
list.add(3);
list.add(1);
System.out.println("=======正常遍历============");
for (Integer i : list) {
System.out.print(i+"\t");
} System.out.println("\n=======执行sort方法============");
Collections.sort(list);
for (Integer i : list) {
System.out.print(i+"\t");
}
System.out.println("\n=======执行reverse方法============");
Collections.reverse(list);
for (Integer i : list) {
System.out.print(i+"\t");
}
} }

结果:

=======正常遍历============
7 2 5 3 1
=======执行sort方法============
1 2 3 5 7
=======执行reverse方法============
7 5 3 2 1

五、集合查找、替换的方法

package com.pb.demo2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class CollectionsTest3 { public static void main(String[] args) {
//声明集合并添加集
//创建集合
List<String> list = new ArrayList<String>();
//增加10 个不同单词
list.add("this");
list.add("is");
list.add("collection");
list.add("test");
list.add("and");
list.add("we");
list.add("can");
list.add("learn");
list.add("how");
list.add("to");
System.out.println("=======正常遍历============");
for (String s : list) {
System.out.print(s+"\t");
}
//打印输出集合中最大元素和最小元素
System.out.println("\n========打印输出集合中最大元素和最小元素=========");
String max=Collections.max(list);
String min=Collections.min(list);
System.out.println("list集合中的最大值:"+max);
System.out.println("list集合中的最小值:"+min);
System.out.println("\n=======执行sort方法============");
Collections.sort(list);
for (String s : list) {
System.out.print(s+"\t");
}
//binarySearch使用的前提是要排序才可以使用
System.out.println("\n=============binarySearch根据内容查找索引================");
System.out.println("we在list中的索引是:"+Collections.binarySearch(list, "we"));
System.out.println("=============replaceAll方法================");
//replaceAll
Collections.replaceAll(list, "we", "our");
for (String s : list) {
System.out.print(s+"\t");
}
//swap
System.out.println("======swap========");
Collections.swap(list, 0, 9);
for (String s : list) {
System.out.print(s+"\t");
} }
}

结果:

=======正常遍历============
this is collection test and we can learn how to
========打印输出集合中最大元素和最小元素=========
list集合中的最大值:we
list集合中的最小值:and =======执行sort方法============
and can collection how is learn test this to we
=============binarySearch根据内容查找索引================
we在list中的索引是:9
=============replaceAll方法================
and can collection how is learn test this to our ======swap========
our can collection how is learn test this to and

六、使用Arrays.asList生成集合

package com.pb.demo2;

import java.util.Arrays;
import java.util.List; public class Test1 { public static void main(String[] args) {
String str="a,b,c,d,e,f";
List<String> list1=Arrays.asList(str);
System.out.println("list1的长度: "+list1.size());
for (String s : list1) {
System.out.print(s+"\t");
}
System.out.println("\n按逗号分离后生成集合");
List<String> list2=Arrays.asList(str.split(","));
System.out.println("list2的长度: "+list2.size());
for (String s : list2) {
System.out.print(s+"\t");
}
} }

结果:

list1的长度:  1
a,b,c,d,e,f
按逗号分离后生成集合
list2的长度: 6
a b c d e f

Java从零开始学二十四(集合工具类Collections)的更多相关文章

  1. Java笔记(二十四)……集合工具类Collections&Arrays

    Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...

  2. Java从零开始学三十(String和StringBuffer类)

    一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作   二.Str ...

  3. Java从零开始学二十二(集合Set接口)

    一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...

  4. Java从零开始学二十(集合简介)

    一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 ...

  5. Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

    一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中 ...

  6. Java从零开始学二十八(Math类和Random类)

    一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...

  7. Java从零开始学二十六(包装类)

    一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类 ...

  8. Java从零开始学二十五(枚举定义和简单使用)

    一.枚举 枚举是指由一组固定的常量组成的类型,表示特定的数据集合,只是在这个数据集合定义时,所有可能的值都是已知的. 枚举常量的名称建议大写. 枚举常量就是枚举的静态字段,枚举常量之间使用逗号隔开. ...

  9. Java:集合工具类-Collections

    Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...

随机推荐

  1. HDU 4267 A Simple Problem with Integers 多个树状数组

    A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  2. matlab 乱七八糟求最大值~

    w=rand(,) [a b]=size(w); x=; maxw=w(,); :a :b if w(k,d)>maxw maxw=w(k,d); end end end disp(['haha ...

  3. jmeter-分布式部署之负载机的设置

    本文分三个部分: 1.windows下负载机的配置 2.Linux下负载机的配置 3.遇到的问题 *************************************************** ...

  4. Android开发资料

    Android      [开发环境及工具] [控件使用及示例源码] [热更新] [开源组件] [系统内核] [错误及调试]   来自  http://www.howcode.cn ,内容不错,学习中 ...

  5. 打印后台程序服务没有启动,每次打开Powerdesigner都会要我安装打印机

    原因: 不光这个,就是word也需要你有个打印机.随便安一个就可以了.一般系统自带个Microsoft Office Document Image Writer的还报打印机,要是你有这个打印机的话.查 ...

  6. facebook开源项目集合

    Facebook的开源大手笔   1. 开源Facebook平台代码 Facebook在2008年选择将该平台上的重要部分的代码和应用工具开源.Facebook称,平台已经基本发展成熟,此举可以让开发 ...

  7. JAVA nio 2 定义 Path 类

    一旦确认了文件系统上的一个文件或目录,那么就可以定义一个 Path 类来指向它.定义 Path 类可以使用绝对路径.相对路径.路径中带有一个点号“.”(表示当前目录).路径中带有两个点“..”(表示上 ...

  8. 基于Java IO 序列化方案的memcached-session-manager多memcached节点配置

    在公司项目里想要在前端通过nginx将请求负载均衡,而后台的几组tomcat的session通过memcached(non-sticky模式)进行统一管理,这几组tomcat部署的web app是同一 ...

  9. sqlite3.exe 使用

    1 下载sqlite3.exe 2 命令行cmd,进入到sqlite3.exe目录 3 >sqlite3.exe database.db   来打开sqlite数据库. 4 基本语法: > ...

  10. idea打包可执行文件

    背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR 包:或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包.并且,如果依赖第三方jar时,又不希望第三 ...