java集合(工具类Collections)

/*

*1 Collections.sort(list集合,比较器);

*sort方法不仅可以对list进行自然排序,还可以根据需求定义比较器进行排序。

*sort方法不能对Set集合进行排序。

*binarySearch方法对集合进行插入,且保证集合有序,如果查找的元素不存在

*则返回比该元素大一个位置的元素的下标加一的相反数,他的原理是折半查找。

*fill方法可以将list集合中所有的元素替换成指定元素。

*练习,将集合中部分元素替换成指定元素。

*replaceAll方法将某一元素替换成指定元素。

*reverse方法将所有的元素反转。

*swap方法将集合中指定的两个元素置换位置。

*shuffle方法将集合中的所有元素随机排列一次。

*/

import java.util.*;

public class CollectionsDemo {

public static void main(String[] args) {

//sortDemo();

//maxDemo();

//binarySearchDemo();

//fillDemo();

//replaceAllDemo();

shufleDemo();

}

public static <T> void sop(T t)

{

System.out.println(t);

}

//将集合中的所有元素随机排列一次

public static void shufleDemo(){

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("zz");

sop(list);

Collections.shuffle(list);

sop(list);

}

//将某一元素替换成指定元素。

public static void replaceAllDemo()

{

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("zz");

sop(list);

//Collections.replaceAll(list,"aaa","pp");

//Collections.reverse(list);

Collections.swap(list,1, 2);

sop(list);

}

//将list集合中所有的元素替换成指定元素。

public static void fillDemo()

{

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("zz");

sop(list);

Collections.fill(list,"pp");

sop(list);

}

//binarySearch方法对集合进行插入,且保证集合有序.

public static void binarySearchDemo()

{

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("zz");

//使用sort方法进行排序

Collections.sort(list);

sop(list);

int index=Collections.binarySearch(list,"oo");

sop(index);

}

//取最大值

public static void maxDemo()

{

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("zz");

//使用sort方法进行排序

Collections.sort(list);

sop(list);

//使用max方法取最大值。

String max=Collections.max(list);

sop("max="+max);

}

//使用sort方法进行排序。

public static void sortDemo()

{

List<String> list=new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("z");

list.add("kkkk");

list.add("qq");

list.add("z");

sop(list);

Collections.sort(list,new Comlength());

sop(list);

}

}

//定义比较字符串长度的比较器。

class Comlength implements Comparator<String>{

public int compare(String o1, String o2) {

if(o1.length()>o2.length())

return 1;

else if(o1.length()<o2.length())

return -1;

else return o1.compareTo(o2);

}

}

/*

* reverseOrder()方法给TreeSet集合传递一个逆序比较器,将所有元素反序。

* reverseOrder()还有一个重载方法reverseOrder(Comparator<T> cmp)

返回一个比较器,它强行逆转指定比较器的顺序。

*

*/

import java.util.Collections;

import java.util.Comparator;

import java.util.Iterator;

import java.util.TreeSet;

public class CollectionsDemo2 {

public static void main(String args[])

{

orderDemo();

}

public static void orderDemo()

{

//调用有参的reverseOrder方法,首先按照其参数比较器对集合进行排序,再强行将集合元素反序。

TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder(new StrComparator2()));

ts.add("abvde");

ts.add("a");

ts.add("kk");

ts.add("ccc");

Iterator<String> it=ts.iterator();

while(it.hasNext())

{

sop(it.next());

}

}

public static <T> void sop(T t)

{

System.out.println(t);

}

}

//定义一个比较器

class StrComparator implements Comparator<String>

{

public int compare(String o1, String o2) {

return o2.compareTo(o1);

}

}

//定义一个比较器

class StrComparator2 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);

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 16:07:49

java集合(工具类Collections)的相关文章

java集合工具类---Collections/Arrays

/* *Collections用于操作List/Set的工具类 *Arrays用于操作数组的工具类 */ package pack; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.TreeSet; public class Main { pu

黑马程序员——Java集合工具类和泛型

Collections工具类和泛型 Collections和Collection Collections和Collection是不同的,Collections是工具类,用来操作集合的,而Collection是集合接口.Collections中有一系列的静态方法用来操作集合,但是不能更改集合内容.比如不能set()不能remove()元素,可以替换全部元素或者添加同一个元素. static List<String> list =Arrays .asList("one Two three

Java从零开始学二十四点(集合工具类Collections)

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta

Java之工具类Collections

总结 Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控制等方法 实现方法 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test3 { p

黑马程序员——Java基础工具类---Collections、Arrays、超级for循环、静态导入、方法可变参数

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二分查找,随机

Java集合操作类Collections的一些常用方法

public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(34); list.add(55); list.add(56); list.add(89); list.add(12); list.add(23); list.add(126); System.out.println(list); //对集合进行排序 Collections.sort(lis

Java8集合框架——集合工具类Collections内部方法浅析

本文的目录结构: 零:Collections 的官方注释 一.Algorithms(算法类操作) 01.排序 sort 02.二分查找 binarySearch 03.列表反转 reverse 04.元素重排列 shuffle 05.元素交换 swap 06.列表填充 fill 07.元素复制 copy 08.最小/最大元素查找 min/max 09.数组旋转 rotate 10.元素替换 replaceAll 11.子列表匹配 二.Unmodifiable Wrappers(不可变包装类) 三

java Collections集合工具类

/* Collections是Collection的工具类. 工具类中其中两个比较常用的方法就是: 1,sort(list) . sort(list,自定义比较器) 2,max(list) . max(list,自定义比较器) 3,binarySearch(list,key) //利用折半查找的方法找到list中key元素的索引,存在则返回索引,不存在则返回-(插入点)-1 */ import java.util.*; class CollectionsDemo { public static

Java基础知识回顾-22(静态导入,可变参数,Collections集合工具类,集合嵌套)

1.在导包的时候可以导入其静态部分,这样在类中使用其时,可以直接以其名使用 例如:Map.Entry的访问,在类文件头部导入import java.util.Map.Entry后简化后为Entry. 2.可以用"修饰符 返回值类型 方法名(参数类型... 形参名){  }"的方式来同时传入不确定个数,相同参数类型的参数.比如当求不确定个数的int类型的数据的和时,可以使用这种方式,避免写多个方法,如果参数类型不改变,则该方法不可重载,因为可变参数不确定参数个数吗.若要增加不可变参数,需