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