黑马程序员---Java中的Collections工具类

本文详细介绍了Java中Collections工具类的使用方法,包括排序、二分查找、集合反转等功能,并提供了多个示例代码来演示如何操作List集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                  关于Java中的Collections工具类
                 --------- android培训java培训、java学习型技术博客、期待与您交流! ------------

//=========================================
1.  Collection和Collections区别
  Collection单例集合根接口
  Collections普通的类,专门操作集合的一个类
//=========================================
 
2.Collections的一些方法

A.  sort(List<T> list) 只限在List集合

B.  sort(List<T> list, Comparator<? super T> c) 传递一个比较器

C.  static <T> Comparator<T> reverseOrder() 方法的运行结果,是一个 比较器, 逆转对象的自然顺序
  只有一个比较器就能排序了吗,不能,reversOrder必须和sort配合
 
D.  reverseOrder(Comparator<T> cmp) 传递一个比较器对象,方法的运行结果也是一个比较器
  逆转我们传递的比较器


import java.util.*;
public class CollectionsDemo {
 public static void main(String[] args) {
  method_3();
 }
 
 //静态方法。sort(比较器) 比较器从reversOrder(传递比较器)方法获取,逆转了我们传递的比较器
 private static void method_3(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //获取一个逆转的比较器
  //Comparator com = Collections.reverseOrder(new StringLength());
  Collections.sort(list, Collections.reverseOrder(new StringLength()));
  System.out.println(list);
 }
 
 //静态方法,sort(比较器) 比较器是从reversOrder方法中获取的,强行逆转
 private static void method_2(){
  List<String> list = new ArrayList<String>();
  list.add("gdfdf");
  list.add("terrr");
  list.add("asdd");
  list.add("qwa3");
  list.add("bgv21334");
  System.out.println(list);
  //获取比较器,静态方法reverseOrder()
  //Comparator com = Collections.reverseOrder();
  Collections.sort(list,Collections.reverseOrder());
  System.out.println(list);
 }
 
 //静态方法sort(比较器)按照指定的比较器排序
 private static void method_1(){
  List<String> list = new ArrayList<String>();
  list.add("terrr");
  list.add("gdfdf");
  list.add("qwa3");
  list.add("bgv21334");
  list.add("asdd");
  System.out.println(list);
  //调用静态方法sort传递比较器
  Collections.sort(list,new StringLength());
  System.out.println(list);
 }
 
 //静态方法sort()对List集合进行升序排序
 private static void method(){
  List<String> list = new ArrayList<String>();
  list.add("ewgr3");
  list.add("jthfdgv");
  list.add("qewf");
  list.add("hgdfs");
  list.add("qwef");
  System.out.println(list);
  //调用工具类,静态方法sort
  Collections.sort(list);
  System.out.println(list);
 }
}

//=========================================
3.  binarySearch(list,key)集合的二分查找,折半查找
  只能用list集合,集合必须有序
  如果没有这个对象,返回-插入点-1

import java.util.*;
public class CollectionsDemo1 {
 public static void main(String[] args) {
  List<String> list = new ArrayList<String>();
  list.add("rwgr");
  list.add("jhfgds");
  list.add("ewrdfg");
  list.add("mngbvc");
  list.add("asdcv");
  list.add("nbvcx");
  Collections.sort(list);
  System.out.println(list);
  //折半查找,返回一个索引
  int index = Collections.binarySearch(list, "mngbvc");
  System.out.println(index);
 }
}
//=========================================
  reverse(List<?> list) 集合的反转,必须是List集合
  static void shuffle(List<?> list) 对集合随机排列
  swap(List<?> list, int i, int j) 对集合指定下标,交互位置

 import java.util.*;
public class CollectionsDemo2 {
 public static void main(String[] args) {
  method_1();
 }
 //集合位置交换swap
 private static void method_2(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
 
  Collections.swap(list, 0, 3);
  System.out.println(list);
 }
 
 
 //随机排列集合shuffle
 private static void method_1(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //随机排列,shuffle方法
  Collections.shuffle(list);
  System.out.println(list);
 }
 
 //reverse()反转集合
 private static void method(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //反转集合reverse()
  Collections.reverse(list);
  System.out.println(list);
 }
}

                    ---------  android培训 java培训 、java学习型技术博客、期待与您交流! ------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值