首页 > 其他分享 >集合-Collections及常用方法

集合-Collections及常用方法

时间:2023-08-14 11:33:54浏览次数:27  
标签:常用 list 元素 List Collection Collections 集合

一. 概述

Collections类是Java提供的一个操作Set、List、Map等集合的工具类Collections 类提供了许多操作集合的静态方法,借助这些静态方法可以实现对集合元素的排序、查找替换和线程安全化等操作
Collections类中的方法都是静态的
Collections类中没有构造函数,不能进行实例化

二. 常用方法

1. 排序

 

/*1. 根据元素的自然顺序对指定List集合的元素按升序进行排序:
List集合中所有元素必须实现Comparable接口;
此方法只适用于List集合
*/
static <T extends Comparable<? super T>> void   sort(List<T> list);
/*2. 根据指定比较器的顺序对List集合元素进行排序:
此方法只适用于List集合
*/
/*
按照元素自然顺序排序
Collections.sort(list); 
按照字符串长度比较器进行排序
Collections.sort(list,new StrLenComparator());
*/
//字符串长度比较器
class StrLenComparator implements Comparator<String>{
  public int compare(String o1, String o2) {
    if(o1.length()>o2.length())
    return 1;
    if(o1.length()<o2.length())
    return -1;
    return o1.compareTo(o2);
  }
}
static <T> void   sort(List<T> list,Comparator<? super T> c);

 

 

 

2. 查找最值

 

/*1. 根据元素的自然顺序,返回集合中的最大元素:
集合中所有元素必须实现Comparable接口;
此方法只适用于Collection集合
*/
static <T exntends Object & Comparable<? super T>> T   max(Collection<? extends T> coll);
/*2. 根据指定比较器的顺序,返回集合中的最大元素:
此方法只适用于Collection集合
*/
static <T> T   max(Collection<? entends T> coll,Comparator<? super T> comp);
/*3. 根据元素的自然顺序,返回集合中的最小元素:
集合中所有元素必须实现Comparable接口;
此方法只适用于Collection集合
*/
static <T exntends Object & Comparable<? super T>> T   min(Collection<? extends T> coll);
/*4. 根据指定比较器的顺序,返回集合中的最小元素:
此方法只适用于Collection集合
*/
static <T> T   min(Collection<? entends T> coll,Comparator<? super T> comp);

//最大元素
String maxStr = Collections.max(list);
//最小元素
String minStr = Collections.min(list);

 

3. 二分搜索法

/*1. 使用二分搜索法搜索指定的List集合,以获得指定对象在List集合中的索引:
要使该方法可以正常工作,List集合中的元素要先按自然顺序升序排列;
此方法只适用于List集合
*/
static <T> int   binarySearch(List<? entends Comparable<? super T>> list,T key);
/*2. 使用二分搜索法搜索指定的List集合,以获得指定对象在List集合中的索引:
要使该方法可以正常工作,List集合中的元素要先按指定比较器进行升序排列;
此方法只适用于List集合
*/
 static <T> int   binarySearch(List<? extends T> list,T key,Comparator<? super T> c);


//注意一定要保证原集合有序呦 (*^▽^*)
Collections.sort(list);
//二分搜索集合list中str的位置下标,若不存在则返回一个小于0的数
int index1=Collections.binarySearch(list,str);
//集合list先按照自定义比较器进行排序后,再对str进行二分搜索
int index2=Collections.binarySearch(list,str,new StrLenComparator());

 

 

 

  

 

标签:常用,list,元素,List,Collection,Collections,集合
From: https://www.cnblogs.com/Yuansj0206/p/17628157.html

相关文章

  • navicat 常用快捷键
    1.ctrl+q       打开查询窗口2.ctrl+/        注释sql语句3.ctrl+shift+/ 解除注释4.ctrl+r        运行查询窗口的sql语句5.ctrl+shift+r 只运行选中的sql语句6.F6              打开一个mysql命令行窗口7.ctrl+l    ......
  • 集合框架(一)
    1、集合的相关概念1.1、为什么需要集合?集合也是一个容器,但是可以自动扩容,只需要往里面添加元素就行,这样可以解决数组的定长问题。但是不能储存基本数据类型。添加基本数据类型需要使用包装类。1.2、集合的分类:单列集合和双列集合。2、ArrayList2.1、基本使用如下所示:importj......
  • Linux常用命令
    Linux常用命令mkdirmkdir感谢老铁的花花感谢老铁送上的飞机mkdir-p斗鱼/lol虎牙/王者农药tree树的意思,以树状图显示文件目录的层级结构#确保你的机器可以上网,yum如同pip一样,自动的安装东西,解决依赖#pip是给python安装模块的工具#yum是给linux安装......
  • winform的几种常用对话框
    保存文件对话框:SaveFileDialogsfd=newSaveFileDialog();sfd.InitialDirectory=Path.GetDirectoryName(Application.ExecutablePath);sfd.Filter="文本文件|*.txt|配置文档|*.ini";sfd.FileName="newName";if(sfd.ShowDialog()==System.Windows.Forms......
  • 【HIVE系列】01-HIVE 常用操作
    title:【HIVE系列】01-HIVE常用操作date:2018-11-1320:20:31update:2018-11-1517:10:43categories:-大数据技术-hivetags:[hive]参考资料:https://blog.csdn.net/wisgood/article/details/17376393http://ju.outofmemory.cn/entry/1764081.数据库操作(增删......
  • 2个List集合取差集
    定义了一个Student实体类/***@author王立朝*@date2023/3/21*@description:*/publicclassStudent{privateStringid;privateStringname;privateIntegerage;privateStringispUserId;@OverridepublicStringtoString(){......
  • 常用的 http 状态码有哪些?
    在我们进行网页,网址的访问过程中,http,https都是我们主要使用到的协议,在使用这协议的时候,对于他的协助状态,我们是需要完全正确理解,从而才有可能更好的理解这套协议的初衷。常用的HTTP状态码包括:1xx信息性状态码(Informational):100Continue101SwitchingProtocols2xx......
  • 【转】SQL Server 常用运维语句
    来自:微信公众号  DotNet工控上位机编程链接地址:https://mp.weixin.qq.com/s/wyyuuRMMAgM_4QEvaAdQMw 开发.NET应用时可能会使用SQLServer数据库,对于SQLServer数据库的日常开发,给大家分享一些运维SQL语句。一、场景1:SQLServer死锁分析执行以下SQL,启用SQLServer死锁日志输出......
  • git常用命令记录
    git仓库初始化gitinit查看git仓库状态gitstatus将文件加入缓存区gitadd.gitaddtest_*将缓存区的文件提交到仓库gitcommit-m"提交信息"将本地仓库代码push到远程仓库gitpushoriginbranch_name分支管理gitbranch#显......
  • LeetCode 7022——熟悉TreeSet数据结构及常用方法的使用
    LeetCode7022.限制条件下元素之间的最小绝对差题目描述:给你一个下标从 0 开始的整数数组 nums 和一个整数 x 。请你找到数组中下标距离至少为 x 的两个元素的 差值绝对值 的 最小值 。换言之,请你找到两个下标 i 和 j ,满足 abs(i-j)>=x 且 abs(nums[i......