第六章_Java中的常用工具类

本文介绍了Java中的Collections和Arrays工具类,详细讲解了它们提供的各种操作方法,如集合的排序、查找、替换,以及数组的排序、查找和元素拷贝。通过示例代码展示了如何在实际开发中高效地使用这两个工具类。

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

常用类

Collection工具类

Java中针对集合的操作非常频繁,例如排序,从集合中查找某个元素等,针对这些常见操作,Java提供了一个工具类的专门用来操作集合,这个类就是Collections.

  • 添加、排序操作
    Collections类中提供了一系列方法用于对List集合进行添加和排序操作:
方法声明功能描述
static <T> boolean addAll(Collection<? super T> c, T… elements)将所有指定元素添加到指定集合c中
static void reverse(List list)反转指定List集合中元素的顺序
static void shuffle(List list)对List中的元素进行随机排序
static void sort(List list)根据元素的自然顺序对List集合中的元素进行排序
static void swap(List list, int i, int j)将指定List集合中角标i处元素和j处元素进行交换

  • 查找、替换操作
    Collections类还提供了一些常用方法用于查找和替换集合中的元素:
方法声明功能描述
static int binarySearch(List list, Object key)使用二分法搜索指定对象在List集合中的索引,查找的List集合中的元素必须是有序的
static Object max(Collection col)根据元素的自然顺序,返回给定集合中最大的元素
static Object min(Collection col)根据元素的自然顺序,返回给定集合中最小的元素
static boolean replaceAll(List list, Object oldVal, Object newVal)用一个新值newVal替换List集合中所有的旧值oldVal

Array工具类

java.util包中,除了针对集合操作提供了一个集合工具类Collections,还针对数组操作提供了一个数组工具类–Arrays工具类.Arrays工具类提供了大量针对数组操作的静态方法.

  • 使用sort()方法排序
    针对数组排序,数组工具类Arrays还提供了其他多个重载的sort()方法,既可以按照自然顺序进行排序,也可以传入比较器参数进行定制排序,同时还支持选择排序的元素范围.
import java.util.Array;

public class Example27 {

    public static void main(String[] args){

        int[] arr = {9, 8, 3, 5, 2}; //初始化一个数组

        System.out.println("排序前:"); 

        printArray(arr); //打印原数组

        Arrays.sort(arr); //调用Arrays的sort()方法排序

        System.out.println("排序后:");

        printArray(arr); //打印排序后数组
    }

    //定义打印数组元素方法
    public static void printArray(int[] arr){

        System.out.print("[");

        for(int x=0; x<arr.length; x++){

            if(x != arr.length-1){

                System.out.print(arr[x] +",");
            }else{

                System.out.println(arr[x]+"]");
            }
        }
    }
}

  • 调用binarySearch(Object[] a, Object key)方法查找元素
    程序开发中,经常需要在数组中查找某些特定的元素,如果数组中的元素较多时查找某个元素就会非常繁琐,为此,Arrays工具类中还提供了一个binarySearch(Object[] a, Object key)方法用于查找元素.
import java.util.Arrays;

public class Example28{

    public static void main(String[] args){

        int[] arr = {9, 8, 3, 5, 2};

        Arrays.sort(arr); //对数组进行排序

        int index = Arrays.binarySearch(arr, 3); //查找指定元素3

        System.out.println("元素3的索引是:" + index);
    }
}

binarySearch()方法只能针对排序后的数组进行元素查找,因为该方法采用的是二分查找法.二分法查找,就是每次将指定元素和数组中间位置进行比较,从而排除掉其中的一半元素.


  • 使用copyOfRange(int[] original, int from, int to)方法拷贝元素
    如果需要在不破坏原数组的情况下,使用数组中的部分元素,这时可以使用Arrays工具类的copyOfRange(int[] original, int from, int to)方法将数组中指定范围的元素拷贝到一个新的数组中. 参数original表示被拷贝的数组,from表示被拷贝元素的初始索引(包括),to表示被拷贝元素的最后索引(不包括).
import java.util.Arrays;

public class Example29{

    public static void main(String[] args){

        int[] arr = {9, 8, 3, 5, 2};

        //拷贝一个指定范围的数组
        int[] copied = Arrays.copyOfRange(arr, 1, 7);
        //(arr, 1, 7)表示拷贝arr数组从索引1(包括)到索引7(不包括)处对应的元素
        //当参数指定的长度超过原数组长度时,新数组中原数组没有元素的位置会放入int类型数组的默认值0

        for(int i = 0; i < copied.length; i++){

            System.out.print(copied[i] + " ");
        }
    }
}

  • 使用fill(Object[] a, Object val)方法替换元素
    程序开发中,可能会需要将一个数组中的元素替换成同一个元素,此时可以用Arrays工具类的fill(Object[] a, Object val)方法,该方法可以将指定的值赋给数组中的每一个元素.
import java.util.Arrays;

public class Example30{

    public static void main(String[] args){

        int[] arr = {1, 2, 3, 4};

        Arrays.fill(arr, 8); //用8替换数组中的每个元素

        for(int i = 0; i < arr.length; i++){

            System.out.println(i + ":" + arr[i]);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_BryceLoski21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值