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. 【Java】【2】String和List相互转换

    正文: 1,String转List //常见的为逗号分隔 String str = "a,b,c"; List<String> list1 = Arrays.asLis ...

  2. jetty 插件启动指定端口号

    clean jetty:run -Djetty.port=端口号

  3. php获得时间段的月

    1.时间:$start_time = $_GET['start_time']; //2015-01$end_time = $_GET['end_time']; //2015-052.对时间进行拆分:$ ...

  4. Spring Boot项目打包部署到外部Tomcat

    1.生成war包 1)修改POM文件,将打包类型改为war:<packaging>war</packaging> <packaging>war</packag ...

  5. git 恢复误删的分支

    在使用git的过程中,因为人为因素造成分支(commit)被删除,可以使用以下步骤进行恢复. 首先用以下步骤创建一个新分支,修改一些文件后删除,以便进行恢复. 1.创建分支 abc git branc ...

  6. Oracle Log Block Size

    Although the size of redo entries is measured in bytes, LGWR writes the redo to the log files on dis ...

  7. 有多个.h引用时,不能有using namespace std

    #include<iostream.h> #include<math.h> //using namespace std; 有多个.h引用时,不能有这个,否则无法运行. void ...

  8. bzoj1666

    题解: 简单模拟 按照题目意思来就可以了 代码: #include<bits/stdc++.h> using namespace std; int n,ans; int main() { ...

  9. [POJ2985]The k-th Largest Group

    Problem 刚开始,每个数一个块. 有两个操作:0 x y 合并x,y所在的块 1 x 查询第x大的块 Solution 用并查集合并时,把原来的大小删去,加上两个块的大小和. Notice 非旋 ...

  10. 玩linux就是不断的踩坑,踩坑。最近的坑。xpath firefox兼容问题,抓取表格。

    最近在抓取一个页面表格时发现,用firefox提取的xpath,不能用,仔细分析后,发现是提取的xpath多了一个tbody标签.在xpath路径中删掉这段就好了. last_A5='/html/bo ...