前言

  数组的工具类java.util.Arrays
  由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。

一、Arrays类概述

1.1、Arrays类的引入

  该是java.util包中的类,在我们的代码中想使用这个类的话,就必须使用import进行导入。

  在当前类A中,只有java.lang包下的类,以及和当前类A在同一个包下的类,不需要import引入之外,其他所有的包下的类在被使用之前都要import引入。

1.2、简介

  

二、Arrays类中方法调用

  Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用" 而不是 "不能")

2.1、toString()方法

  把数组转换位字符串形式并返回

  

        int[] a = {,,,,};
System.out.println(Arrays.toString(a));

  结果:[1, 3, 5, 7, 9]

2.2、binarySearch()方法 

  在数组中查找指定元素并返回其下标

注意:使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过sort方法等)。如果没有对数组进行排序,则结果是不确定的。

如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

  

        int[] a = {,,,,};
int bs = Arrays.binarySearch(a, );
System.out.println(bs);

     结果:3

2.3、sort()方法

  把数据中的元素进行排序

  

  1)sort(int[] a)    对指定的 int 型数组按数字升序进行排序 

        int[] a = {,,,,};
System.out.println("before"+Arrays.toString(a));
Arrays.sort(a);
System.out.println("after"+Arrays.toString(a));

   结果:before[3, 5, 1, 9, 7]
                      after[1, 3, 5, 7, 9]

  2)sort(byte[] a, int fromIndex, int toIndex)     对指定 byte 型数组的指定范围按数字升序进行排序。

    参数概述: 

     a - 要排序的数组

      fromIndex - 要排序的第一个元素的索引(包括)

      toIndex - 要排序的最后一个元素的索引(不包括)

  3)sort(T[] a, Comparator<? super T> c)       根据指定比较器产生的顺序对指定对象数组进行排序

2.4、copyOf()方法

  复制或者截取指定数组并返回

  

        int[] a = {,,,,};
int[] copy = Arrays.copyOf(a, );
System.out.println(Arrays.toString(copy));

结果:[1, 3, 5, 7, 9, 0, 0, 0]

2.5、copyOfRange()方法

  将数组中指定范围复制新数组并返回

copyOfRange(int[] original, int from, int to)       将指定数组的指定范围复制到一个新数组。

  参数:original - 将要从其复制一个范围的数组

      from - 要复制的范围的初始索引(包括)

      to - 要复制的范围的最后索引(不包括)。(此索引可以位于数组范围之外)。

  

2.6、equals()方法

   比较俩个数组是否相等

  

        int[] a = {,,,,};
int[] b = {,,,,};
boolean eq = Arrays.equals(a, b);
System.out.println(eq);
System.out.println(a==b);

结果:true

false

  注意:==比较的是引用所指向对象的内存地址
                Arrays.equals方法比较是俩个数组中的内容

2.7、fill()方法

  用指定值去填充数组对象

  

  1)fill(int[] a, int val)    将指定的 int 值分配给指定 int 型数组的每个元素

        int[] a = {,,,,};
Arrays.fill(a, );
System.out.println(Arrays.toString(a));

  结果:[666, 666, 666, 666, 666]

  2)fill(int[] a, int fromIndex, int toIndex, int val)     将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。

    参数:    a - 要填充的数组

        fromIndex - 要使用指定值填充的第一个元素的索引(包括)

        toIndex - 要使用指定值填充的最后一个元素的索引(不包括)

        val - 要存储在数组所有元素中的值

2.8、asList()方法

  可以把数组转换为List集合

  

        int[] a = {,,,,};
List<int[]> list = Arrays.asList(a);

2.9、hashCode()方法

  基于指定数组的内容返回哈希码

  

        int[] a = {,,,,};
System.out.println(Arrays.hashCode(a));

结果:31549916

喜欢就点个“推荐”哦!

Java常用类(四)之数组工具类Arrays的更多相关文章

  1. Java学习个人备忘录之数组工具类

    下面主要讲解一个针对数组操作的工具类. a.java -- 工具类文件 //按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ publi ...

  2. Java常用类库API之数字处理工具类

    数字处理工具类BigDecimal和DecimalFormat Java提供的java.text.DecimalFormat类,帮助我们用最快的速度将数据格式化为我们想要的样子.例如,取两位小数 im ...

  3. java数组 数组工具类Arrays

    一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...

  4. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  5. 数组工具类 - ArrayUtil.java

    数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...

  6. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  7. java基础37 集合框架工具类Collections和数组操作工具类Arrays

    一.集合框架工具类:Collections 1.1.Collections类的特点 该工具类中所有的方法都是静态的 1.2.Collections类的常用方法 binarySearch(List< ...

  8. Java学习:数组工具类Arrays

    数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...

  9. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

  10. Java判断不为空的工具类总结

    1.Java判断是否为空的工具类,可以直接使用.包含,String字符串,数组,集合等等. package com.bie.util; import java.util.Collection; imp ...

随机推荐

  1. mysql查询文章的评论数量

    作为小白的我,这个问题弄了半天才解决,特此记录下. 两张表:文章表和评论表 文章表(article):id 评论表(comment):id,c_aid 要求:查询出所有文章及评论数量然后降序显示(没有 ...

  2. Eclipse中删除tomcat server 导致不能重新创建该版本的tomcat server

    在Eclipse中创建了一个Web工程后,需要将该工程部署到Tomcat中进行发布.有时就会遇到在New Server对话框中选择了Tomcat 6/7后却无法单击“Next”按钮的问题,如下图所示: ...

  3. mysql 1093错误

    1093错误:修改一个表的时候子查询不能是同一个表 解决办法:把子查询再套一层,变成原来表的孙子查询就可以了 例如: INSERT INTO gg SET id3=(SELECT c.a+1 FROM ...

  4. spark与hive的集成

    一:介绍 1.在spark编译时支持hive 2.默认的db 当Spark在编译的时候给定了hive的支持参数,但是没有配置和hive的集成,此时默认使用hive自带的元数据管理:Derby数据库. ...

  5. Spring事务源码阅读笔记

    1. 背景 本文主要介绍Spring声明式事务的实现原理及源码.对一些工作中的案例与事务源码中的参数进行总结. 2. 基本概念 2.1 基本名词解释 名词 概念 PlatformTransaction ...

  6. 用python的TK模块实现猜成语游戏(附源码)

    说明:本游戏使用到的python模块有tkinter,random,hashlib:整个游戏分为四个窗口,一个进入游戏的窗口.一个选关窗口.一个游戏进行窗口和一个游戏结束的窗口. 源码有两个主要的py ...

  7. EnCase missed some usb activities in the evidence files

    My friend is a developer and her colleague May was suspected of stealing the source code of an impor ...

  8. 从DDD开始说起

    前言 从13年接触DDD之后开始做应用架构已经整整四个年头. 四年里关于DDD的感触良多,慢慢有了一些心得. 关于DDD的介绍已经有很多的文章和书籍,这里我推荐三本最重要的书籍. <领域驱动设计 ...

  9. python --- 网络编程Socket

    网络编程 定义:所为网络编程即是对信息的发送和接收. 主要工作: (1)发送端:将信息以规定的协议组装成数据包. (2)接收端:对收到的数据包解析,以提取所需要的信息. Socket:两个在网络上的程 ...

  10. 理解js中的运算符优先级

    前言 我是有过这样的经历,获取年月日时写出这样的代码: new Date().getFullYear() 此时的我是心虚的,因为我不知道是先执行.运算还是new运算,于是赶紧贴到控制台里,哎呦