Collections算法类:

  Collections是一个算法类,提供了一系列静态方法,实现对集合的排序、替换、交换、搜索、拷贝等操作;

  用法:Collections.方法名(要操作的集合);

  就像数组的操作类Arrays类一样,Collections类是一个操作集合的类,注意:只能操作Collection接口下的集合(Map集合不能使用该类)

具体方法有:

  1.addAll方法;可以对所有Collection集合使用

  2.sort(),reverse(),replaceAll(),binarySearch(),shuffle(),swap()方法 只能对List及其子类使用,Set类型不能用

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet; public class CollectionsDemo {
public static void main(String[] args) {
function();
} private static void function() {
ArrayList<String> arr=new ArrayList<>();
//1.addAll(集合,要添加的元素) 将所有指定元素添加到指定集合中
Collections.addAll(arr,"BBB","DDD","AAA","CCC");
System.out.println(arr);//[BBB, DDD, AAA, CCC]
//2.sort(List 要操作的集合) 根据元素的自然顺序对指定列表按升序进行排序
Collections.sort(arr);
System.out.println(arr);//[AAA, BBB, CCC, DDD]
HashSet<String> hs=new HashSet<>();
Collections.addAll(hs,"BBB","DDD","AAA","CCC");
System.out.println(hs);//[AAA, CCC, BBB, DDD]
// Collections.sort(hs);会报错 sort方法只能对List及其子类使用
//3.reverse方法 反转指定列表中的元素,跟sort方法一样,只对List及其子类使用
Collections.reverse(arr);
System.out.println(arr);//[DDD, CCC, BBB, AAA]
//4.shuffle()方法,对参数List中的元素进行随机排列 只能对List及其子类使用
Collections.addAll(arr,"EEE","FFF","GG");//为了方便观察,我们多添加几个元素并排序
Collections.sort(arr);
System.out.println(arr);//[AAA, BBB, CCC, DDD, EEE, FFF, GG]
Collections.shuffle(arr);//使用shuffle方法
System.out.println(arr);//[DDD, EEE, BBB, CCC, GG, AAA, FFF]
//5.replaceAll(要操作的集合,旧值,新值)方法 将列表中的旧值替换为新值,只对List及其子类可用
Collections.replaceAll(arr,"BBB","HH");
System.out.println(arr);//[HH, DDD, AAA, CCC, FFF, GG, EEE]
//6.binarySearch()方法,在有序的List中查找指定的元素。注意:有序
Collections.sort(arr);
int index = Collections.binarySearch(arr, "DDD");
System.out.println(index);//2 如果找不到元素或者元素无序的话,返回负值
//7.swap(要操作的集合,int i,int j)方法 在List指定的列表中交换i和j两位置处的元素
System.out.println(arr);//[AAA, CCC, DDD, EEE, FFF, GG, HH]
Collections.swap(arr,3,5);
System.out.println(arr);//[AAA, CCC, DDD, GG, FFF, EEE, HH]
}
}

java学习笔记25(Collections类)的更多相关文章

  1. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  2. Java学习笔记16---抽象类与接口的浅显理解

    抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...

  3. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  4. 【原】Java学习笔记031 - 常用类

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...

  5. Java学习笔记day06_自定义类_ArrayList

    1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...

  6. Java学习笔记(2)——有关类

    Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...

  7. Java学习笔记25(System类)

    System类,系统类,包含的是静态方法,无法创建对象 这里介绍几个简单的方法,其他一些在后边用到的时候会讲 类方法: currentTimeMillis():获取当前毫秒数 package demo ...

  8. 0029 Java学习笔记-面向对象-枚举类

    可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...

  9. Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式

    一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...

随机推荐

  1. 根据id获取某一类的最大最小值

    ->selectRaw('max(marking_price) as maxPrice, min(marking_price) as minPrice, product_id') ->gr ...

  2. shiro中JSP标签

    Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮. 导入标签库 <%@taglib prefix="shiro" uri=& ...

  3. 整合多个网络的拓扑结构并降维(Mashup)

    整合多个网络的拓扑结构并降维(Mashup) 介绍一个整合多个网络拓扑结构的方法,方法来源:Compact Integration of Multi-Network Topology for Func ...

  4. python-flask-路由匹配源码分析

    @app.route('/') def hello_world(): return 'Hello World!' 第1步: class Flask(_PackageBoundObject): def ...

  5. Centos7 JDK安装过程中 解决java -version 报错: bash: /home/jdk1.8.0_161/bin/java: Permission denied

    1.执行Linux命令 -----vim /etc/profile  编辑profile  文件,在里面添加: #set java enviroment JAVA_HOME=/opt/JavaHome ...

  6. ​ oracle分区表(附带按照月自动分区、按天自动分区)

    --list_range  示例   drop table list_range_tab purge; create table list_range_tab(n1 number,n2 date)pa ...

  7. 2017-4-18/缓存、CDN

    1. 什么是缓存,为什么要用缓存? 缓存就是数据交换的缓冲区(称作Cache),是存贮数据(使用频繁的数据)的临时地方.当用户查询数据,首先在缓存中寻找,如果找到了则直接执行.如果找不到,则去数据库中 ...

  8. 基于js的CURD插件

    前言: 每个web程序对数据库的创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作都是必不可少的,于是我决定开发一个基于JavaScript和jQuery框 ...

  9. VIM编辑配置文件基本操作

    vim  /etc/apt/sources.list 按insert键进入编辑状态 编辑完成以后按ESC退出编辑状态 输入 ":"进入命令状态,常用命令: 1.W:write ,写 ...

  10. ID基本操作(新建文档,页面编码)5.8

    “文件”“新建”“文档”选择页数,页面大小.页面方向,“边距和分栏”设置上下左右的边距,栏数,如三栏 还可以改变分栏距离·改变排版方向,如图,垂直 单击“页面”可以查看我们的页面情况 超过两页会可以看 ...