下面的文章要给大家介绍的内容就是和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 < 3; 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 < products.size(); 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编程常见问题可以为你分享解答哦。
推荐阅读: