首页 > 其他分享 >Arrays数组做操作工具类

Arrays数组做操作工具类

时间:2024-08-09 19:54:31浏览次数:4  
标签:数组 Arrays int static arr2 key 工具 public

package com.shujia.day12;
import java.util.Arrays;

/*
    Arrays: 是java提供专门针对数组做操作的工具类,该类没有构造方法,且方法都是静态的
    成员方法:
        public static String toString(int[] a)           将任意一个数组中的所有元素以字符串的形式拼接返回
        public static void sort(int[] a)                 对数组元素进行排序
        public static int binarySearch(int[] a,int key)  二分查找元素,如果要保证结果正确的话,被查找的数组必须是有序的


 */
public class ArraysDemo1 {
    public static void main(String[] args) {
//        int[] arr = {11,22,33,44};
////        System.out.println(Arrays.toString(arr));
//        String s1 = Arrays.toString(arr); // 底层其实就是使用StringBuilder对数组中元素做拼接
//        System.out.println(s1);


//        int[] arr2 = {32,1,53,16,73,12};
//        String[] arr3 = {"apple","hadoop","java","hello","redis"}; //也可以对字符串元素数组进行排序,方式是字典顺序
//        String[] arr4 = {"数加","陈真","魏一民","阿刁","东皇太一","镜","Σ(っ °Д °;)っ"};
//        System.out.println("排序前:"+Arrays.toString(arr4));
//        Arrays.sort(arr2);
//        System.out.println("排序后:"+Arrays.toString(arr2));

        //public static int binarySearch(int[] a,int key) 二分查找元素,如果要保证结果正确的话,被查找的数组必须是有序的
//        int[] arr2 = {32,1,53,16,73,12};
//        Arrays.sort(arr2);
        //排序后:[1, 12, 16, 32, 53, 73]
//        int index = Arrays.binarySearch(arr2, 100); // -7
//        System.out.println(index);


    }
}
====================================================================
Arrays中的binarySearch


class Arrays{

    //Arrays.binarySearch(arr2, 100)
    public static int binarySearch(int[] a, int key) {
        // a -- [1, 12, 16, 32, 53, 73]
        // key -- 100
        return binarySearch0(a, 0, a.length, key);
    }

    private static int binarySearch0(int[] a, int fromIndex, int toIndex, int key) {
        // a -- [1, 12, 16, 32, 53, 73]
        // fromIndex -- 0
        // toIndex -- 6
        // key -- 100
        int low = fromIndex; // 0
        int high = toIndex - 1; // 5

        while (low <= high) {
            int mid = (low + high) >>> 1; // 2  4  5
            int midVal = a[mid]; // 16  53  73

            if (midVal < key)
                low = mid + 1; // 3  5  6
            else if (midVal > key)
                high = mid - 1;
            else
                return mid; // key found
        }
        return -(low + 1);  // key not found. // -(6+1) -> -7
    }
}

标签:数组,Arrays,int,static,arr2,key,工具,public
From: https://www.cnblogs.com/qiwei-bigdata/p/18351403

相关文章

  • Python和AI库NumPy(三):数组形状与变换
    目录1.数组的基础形状操作1.1查看数组的形状1.2改变数组的形状2.数组的转置与轴交换2.1数组的转置2.2交换数组的轴3.数组的合并与分割3.1数组的水平与垂直合并3.2数组的分割4.高级数组变换技巧4.1广播机制(Broadcasting)4.2使用expand_dims()和squeeze()......
  • Java中数组算法的学习
    数组的算法目录数组的算法概述冒泡排序选择排序排序算法库StreamAPI概述简单排序:冒泡排序、选择排序、插入排序高级排序:快速排序、归并排序、希尔排序相关算法知识:划分、递归、二分查找冒泡排序原理:从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,......
  • Linux项目自动构建工具 make/makefile
    目录0.前言1.make/makefile是什么2.makefile的语法2.1基本语法2.2依赖关系2.3.示例:一个简单的C程序3.使用指令自动构建与清除3.1自动构建3.2自动清除3.3自动化工作流3.4扩展:更多伪目标4.make的工作原理5.使用make/makefile的优势6.小结(图像由AI生成)0.前......
  • react函数组件实现调用摄像头拍摄功能
    importReact,{useEffect,useRef,useState}from'react'exportdefaultfunctionPaiZhao(){  constcameraVideoRef=useRef(null);  constcameraCanvasRef=useRef(null);  const[Img,setImg]=useState("")  useEffect((......
  • 新新新!工具学习
    sealoshttps://sealos.run/https://blog.csdn.net/favxxx/article/details/132813886这不是宝塔嘛,确实也可以这样类比,只是宝塔更关注到单机应用,Sealos可以狭义的理解为“分布式应用的宝塔”,这样各种分布式应用可以很快运行起来。用宝塔首先你得搞台服务器,而Sealos本身就是一......
  • 使用HTML一键打包工具模拟其他浏览器 - User-Agent的起源到应用
    最近经常有一些朋友对于HTML一键打包工具中的User-Agent不太理解是什么意思,以及它到底有什么用途, 本篇文章会介绍一下User-Agent的起源,发展历程,以及它的使用场景,帮助你更好的了解和使用它User-Agent的起源与发展历程User-Agent最早出现在1990年代初期,随着NCSAMosaic......
  • 创新的HR管理工具:大型企业的10款新选择
    本篇文章介绍了以下几个工具:Moka、北森iTalentX、宏景HJSOFT、红海eHR、Bullhorn、智思云、金蝶K/3Cloud、Lever、BreezyHR、KAYANG嘉扬。在寻找适合大型企业的人力资源管理系统时,许多HR管理者都面临着如何在众多选项中做出最佳选择的难题,这不仅关系到企业的运营效率,还直接影......
  • AI编程工具FittenCode简直是懒人神器啊!
    AI编程简直太好用了,简直是懒人神器啊。自动帮我检查代码、排查错误、给出多种解决方案。快速且精准,教练级的教授知识、保姆级的贴身服务,而且免费、可以不眠不休。上一篇博文,介绍了VisualStudio如何安装AI编程工具FittenCode.今天,介绍一下FittenCode的具体应用。1.打开Fitt......
  • 支持S3协议的S3cmd工具简单使用
    本文分享自天翼云开发者社区《支持S3协议的S3cmd工具简单使用》,作者:付****健一:安装方法#wgethttp://nchc.dl.sourceforge.net/project/s3tools/s3cmd/1.0.0/s3cmd-1.0.0.tar.gz#tar-zxfs3cmd-1.0.0.tar.gz-C/usr/local/#mv/usr/local/s3cmd-1.0.0//usr/local......
  • 数组
    数组概念数组的相关概念和名词1、数组(array)数组(array):简单的说,就是一组数,一组具有相同数据类型的数,是按照一定顺序排列的集合。当一组数据的数据类型,意义是一样的时候,那么为了方便的统一的管理它们,我们需要用新的数据的存储结构来进行存储。例如:数组。所谓数组(Array),就......