Java基础——常用算法5

一、Arrays

1.1 介绍

操作数组的工具类,注意该类没有构造方法。基本上每一个成员方法都用static修饰,所以不用创建对象直接类名.的方式即可调用、不能被实例化 (构造方法是 private 的)、专门用于操作数组(基本类型或对象数组)。

1.2 常用的成员方法

java 复制代码
package com.lkbhua.Algorithm.ArrayDemo;

import java.util.Arrays;

public class demo1 {
    public static void main(String[] args) {
        /*
            public static String toString(数组)    把数组拼接成一个字符串
            public static int binarySearch(数组,查找的元素)    二分查找查找元素
            public static int[] copyOf(原数组,新数组长度)       拷贝数组
            public static int[] copyOf(原数组,新数组长度,新数组的起始索引,新数组的结束索引)       拷贝数组指定范围
            public static void fill(数组,填充的元素)      填充数组
            public static void sort(数组)                 按照默认方式进行数组排序
            public static void sort(数组,排序规则)         按照指定的排序规则进行数组排序

        */

        // 1、toString: 把数组拼接成一个字符串
        System.out.println("-----------toString------------");
        int[] arr = {1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString( arr));

        // 2、binarySearch: 二分查找查找元素
        // 细节1:二分查找的前提:数组中的元素必须是有序的,数组中的元素必须是升序的
        // 细节2:如果数组中没有该元素,则返回-插入点-1
        // 插入点:插入点就是该元素应该在数组中的位置
        // 为什么要减1呢?
        // ------主要是为了避免插入点是0的情况,插入点是-0也是0会造成误解,为什么规定-1.
        System.out.println("-----------binarySearch------------");
        System.out.println(Arrays.binarySearch(arr, 5));
        System.out.println(Arrays.binarySearch(arr, 10));
        System.out.println(Arrays.binarySearch(arr, 1));

        // 3、copyOf: 拷贝数组
        // 如果新数组的长度比原数组的长度小,则新数组的长度就是原数组的长度,同时进行部分拷贝
        // 如果新数组的长度比原数组的长度大,则新数组的长度就是新数组的长度,剩余的元素默认初始化值进行填充
        System.out.println("-----------copyOf------------");
        int[] newArr = Arrays.copyOf(arr, 5);
        System.out.println(Arrays.toString(newArr));

        // 4、copyOfRange: 拷贝数组指定范围
        // 细节1:包头不包尾,包左不包右
        System.out.println("-----------copyOfRange------------");
        int[] newArr2 = Arrays.copyOfRange(arr, 2, 5);
        System.out.println(Arrays.toString(newArr2));

        // 4、fill: 填充数组
        System.out.println("-----------fill------------");
        Arrays.fill(arr, 10);
        System.out.println(Arrays.toString(arr));

        // 5、sort: 排序数组 (默认情况下:给基本数据类型进行升序排序)
        System.out.println("-----------sort------------");
        int[] arr2 = {5,3,2,1,4};
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));

        // 6、sort降序
        System.out.println("-----------sort降序------------");

    }
}

声明:

题目详细分析借鉴于通义AI

以上均来源于B站@ITheima的教学内容!!!

本人跟着视频内容学习,整理知识引用

相关推荐
jinanwuhuaguo2 分钟前
OpenClaw安全使用实践全景深度指南:从“裸奔龙虾”到“可信数字堡垒”的体系化构建
开发语言·php
2501_908329853 分钟前
C++安全编程指南
开发语言·c++·算法
计算机安禾5 分钟前
【C语言程序设计】第39篇:预处理器与宏定义
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
巧妹儿6 分钟前
Python 配置管理封神技:pydantic_settings+@lru_cache,支持优先级,安全又高效,杜绝重复加载!
开发语言·python·ai·配置管理
独隅10 分钟前
Python AI 全面使用指南:从数据基石到智能决策
开发语言·人工智能·python
m0_5698814716 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
weixin_4219226918 分钟前
C++与边缘计算
开发语言·c++·算法
2401_8319207421 分钟前
C++编译期数组操作
开发语言·c++·算法
蝎子莱莱爱打怪25 分钟前
别再裸用 Claude Code 了!32 个亲测Skills + 8 个 MCP,开发效率直接拉满!
java·后端·claude
汪海游龙37 分钟前
开源项目 Trending AI 招募 Google Play 内测人员(12 名)
android·github