java 集合 查找_java Collections类操作集合查找、替换操作详解

下面的文章要给大家介绍的内容就是和java

Collections类操作集合查找、替换操作相关的知识,这些方面你都了解吗?不懂的小伙伴可以通过下面的文章来学习一下呢。

Collections提供了下面比较常用的用于查找、替换集合元素的方法:

int binarySearch(List list, Object

key):使用二分搜索法搜索指定的List集合,以获得指定对象在List集合中的索引;假如,要使这个方法可以正常工作,那么就必须保证List中的元素已经处于有序状态;

Object max(Collection coll):根据元素的自然顺序,返回给定集合中的最大元素;

Object max(Collection coll, Comparator

comp):根据Comparator指定的顺序,返回给定集合中的最大元素;

Object min(Collection coll):根据元素的自然顺序,返回给定集合中的最小元素;

Object min(Collection coll, Comparator

comp):根据Comparator指定的顺序,返回给定集合中的最小元素;

void fill(List list, Object obj):使用指定元素obj替换指定List集合中的所有元素;

int frequency(Collection c, Object o):返回指定集合中指定元素的出现次数;

int indexOfSubList(List source, List

target):返回子List对象在父List对象中第一次出现的位置索引;假如父List中没有出现这样的子List,那么返回-1;

int lastIndexOfSubList(List source, List

target):返回子List对象在父List对象中最后一次出现的位置索引;假如,父List中没有岀现这样的子List,那么返回 -1;

boolean replaceAll(List list, Object oldVal, Object

newVal):使用一个新值newVal替换List对象的所有旧值oldVal;

下面的程序就对Collections工具类的用法做了一个简单的示范。

示例:

编写一个程序,要求用户输入3个商品名称,之后,使用Collections类当中的fill()方法对商品信息进行重置操作,即将所有名称都更改成“未填写”。

首先循环录入3个商品名称,并且把这些商品信息存储到List集合中,之后,调用Collections类中的fill()方法将这个集合当中的所有元素值替换成“未填写”。

最后使用for循环将替换后的集合元素输出。

代码实现:public class Test3

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

List products = new ArrayList();

System.out.println("******** 商品信息 ********");

for (int i = 0; i 

{

System.out.println("请输入第 " + (i + 1) + " 个商品的名称:");

String name = input.next();

products.add(name); // 将用户录入的商品名称保存到List集合中

}

System.out.println("重置商品信息,将所有名称都更改为'未填写'");

Collections.fill(products, "未填写");

System.out.println("重置后的商品信息为:");

for (int i = 0; i 

{

System.out.print(products.get(i) + "\t");

}

}

}

结果:******** 商品信息 ********

请输入第 1 个商品的名称:

苏打水

请输入第 2 个商品的名称:

矿泉水

请输入第 3 个商品的名称:

冰红茶

重置商品信息,将所有名称都更改为'未填写'

重置后的商品信息为:

未填写    未填写    未填写

示例:

在一个集合当中保存4个数据,分别输出最大最小元素和指定数据在集合中出现的次数。

向List集合中添加4个数据,之后调用Collections类中的max()和min()方法输出集合中的最大最小元素,replaceAll()替换元素,frequency()判断指定数据在List集合中出现的次数,最后用

binarySearch()进行二分法查询。

代码实现:public class Test4

{

public static void main(String[] args)

{

ArrayList nums = new ArrayList();

nums.add(2);

nums.add(-5);

nums.add(3);

nums.add(0);

System.out.println(nums); // 输出:[2, -5, 3, 0]

System.out.println(Collections.max(nums)); // 输出最大元素,将输出 3

System.out.println(Collections.min(nums)); // 输出最小元素,将输出-5

Collections.replaceAll(nums, 0, 1); // 将 nums中的 0 使用 1 来代替

System.out.println(nums); // 输出:[2, -5, 3, 1]

// 判断-5在List集合中出现的次数,返回1

System.out.println(Collections.frequency(nums, -5));

Collections.sort(nums); // 对 nums集合排序

System.out.println(nums); // 输出:[-5, 1, 2, 3]

// 只有排序后的List集合才可用二分法查询,输出3

System.out.println(Collections.binarySearch(nums, 3));

}

}

结果:[2, -5, 3, 0]

3

-5

[2, -5, 3, 1]

1

[-5, 1, 2, 3]

3

关于查找、替换操作你都清楚了吗?请继续关注奇Q工具网吧,更多的java基础知识,以及java编程常见问题可以为你分享解答哦。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值