声明:部分内容参考自:https://liuyanzhao.com/2863.html


Arrays类介绍

这个类包含了用于操作数组的各种方法,诸如:排序和搜索。

这个类还包含一个静态方法asList以允许把数组看作list处理。

如果方法引用的数组为null, 方法将会抛出NullPointerException。

类定义

public class Arrays

extends Object

常用方法

1.填充数组:fill
2.数组元素排序:sort
3.比较数组元素是否相等:equals

分析:如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了

equals,所以,这里能比较元素是否相等。

这里补充一下,如果还是不用Arrays.equals,那么我们应该如何重写equals来比较两个数组的元素是否相等呢?这里提供一段代码。

4.二分查找法找指定元素的索引值(下标):binarySearch
5.截取数组:copeOf和copeOfRange
6.将数组转换为List处理

注意:

(1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)
(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
(3)不支持add和remove方法

package com.dylan.collection;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List; /**
* 介绍Arrays类的使用
*
* @author xusucheng
* @create 2018-02-04
**/
public class ArraysDemo {
public static void main(String[] args) {
//1. 填充数组fill
fill();
//2. 数组元素排序:sort
sort();
//3. 比较数组元素是否相等:equals
equals();
//4. 二分查找法找指定元素的索引值(下标):binarySearch
search();
//5. 截取数组:copeOf和copeOfRange
copy();
//6. 将数组转换为List处理
toList(); } private static void print(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
} System.out.println();
} private static void fill() {
int[] arr = new int[5];
Arrays.fill(arr, 2); int[] arr1 = new int[5];
Arrays.fill(arr1, 1, 3, 8);
print(arr);
print(arr1);
} private static void sort(){
int[] arr = {3,2,1,5,4};
Arrays.sort(arr);
int[] arr1 = {3,2,1,5,4};
Arrays.sort(arr,1,3);
print(arr);
print(arr1);
} private static void equals(){
int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println("arr1=arr2?"+Arrays.equals(arr1,arr2));
} private static void search(){
int[] arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 20));
System.out.println(Arrays.binarySearch(arr, 35));
System.out.println(Arrays.binarySearch(arr, 0,3,30));
System.out.println(Arrays.binarySearch(arr, 0,3,40)); } private static void copy(){
int[] arr = {10,20,30,40,50};
int[] arr1 = Arrays.copyOf(arr, 3);
int[] arr2 = Arrays.copyOfRange(arr,1,3); print(arr1);
print(arr2);
} private static void toList(){
Integer[] arr = {10,20,30,40,50};
List list = Arrays.asList(arr);
Iterator it = list.iterator();
while (it.hasNext()){
System.out.print(it.next()+" ");
}
}
}

Java集合框架学习(十二) Arrays类详解的更多相关文章

  1. 集合框架学习之Collection和Map详解

    线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以 ...

  2. Java进阶(三十二) HttpClient使用详解

    Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...

  3. Java基础-进程与线程之Thread类详解

    Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...

  4. Java集合框架学习(一)List

    先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...

  5. Java集合框架学习

    集合框架 集合框架的目标 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现必须是高效的. 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的扩展和适应必 ...

  6. 【java基础 11】java集合框架学习

    导读:本篇博客主要是从整体上了解java的集合框架,然后主要介绍几个自己在项目中用到的结构,比如说:hashtable.hashmap.hashset.arraylist等! 一.宏观预览 从宏观上看 ...

  7. Java集合框架学习笔记

    集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的长度不确定,就使用集合存储. 集合特点1.用于存储对象的容器.2.集合的长度可变.3.集合中不可以存储基本类型 集合容器因为内部的数据结 ...

  8. java.util.Arrays类详解(源码总结)

    概述 Arrays类位于java.util包下,是一个对数组操作的工具类.今天详细的看了看Arrays类的4千多行源码,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Array ...

  9. 【Java入门提高篇】Day30 Java容器类详解(十二)TreeMap详解

    今天来看看Map家族的另一名大将——TreeMap.前面已经介绍过Map家族的两名大将,分别是HashMap,LinkedHashMap.HashMap可以高效查找和存储元素,LinkedHashMa ...

  10. Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)

    1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...

随机推荐

  1. [转帖]mysql 数据库视图迁移

    https://www.cnblogs.com/phpyangbo/p/6132821.html 最近做一个项目,为了方便查询,建了好多的视图表,正式上线的时候需要把本地数据库迁移到服务器上. 按照常 ...

  2. [转帖]一文说清 Linux System Load

    https://zhuanlan.zhihu.com/p/447661302 双十一压测过程中,常见的问题之一就是load 飙高,通常这个时候业务上都有受影响,比如服务rt飙高,比如机器无法登录,比如 ...

  3. [转帖]iometer - 性能压力测试工具

    <存储工具系列文章>主要介绍存储相关的测试和调试工具,包括不限于dd.fio.vdbench.iozone.iometer.cosbench等性能负载工具,及strace等调试工具. 1 ...

  4. [转帖]Linux文件夹对比并提取的差分文件技巧-rsync的妙用

    https://www.xitongjiaocheng.com/linux/2017/45720.html   需求 最近团队正在开发一个版本对比工具,要求是把A1文件夹与A2对比,将A2中的增量部分 ...

  5. 麒麟信安V3.4 安装PG15的过程

    麒麟信安V3.4 安装PG15的过程 背景 发现基于OpenEuler的几个系统使用CentOS的rpm包 安装PG数据库时有问题. 会提示缺少依赖的so文件. 今天想着解决一下, 就百度了一下并且进 ...

  6. 机器学习从入门到放弃:卷积神经网络CNN(一)

    一.前言 在上一篇中我们使用全连接网络,来构建我们的手写数字图片识别应用,取得了很好的效果.但是值得注意的是,在实验的最后,最后我们无论把 LOSS 优化到如何低,似乎都无法在测试数据集 test d ...

  7. 在K8S中各个组件及其作用?

    Kubernetes(简称K8s)是一个强大的容器编排系统,其主要组件及其作用如下: kube-apiserver: 集群的主入口点,提供了RESTful API接口供用户或内部组件与集群进行交互.它 ...

  8. Gin 框架介绍与快速入门

    Gin 框架介绍与快速入门 目录 Gin 框架介绍与快速入门 一.Gin框架介绍 1. 快速和轻量级 2. 路由和中间件 3. JSON解析 4. 支持插件 5. Gin相关文档 二.基本使用 1.安 ...

  9. 微信对话平台API开发

    接入官方文档接入文档 下面我们开始使用前端来进行接入 <!DOCTYPE html> <html> <head> <meta charset="UT ...

  10. ABP 领域服务层学习记录

    在ABP框架中有一个约定,所有的领域服务都应该继承并实现IDomainService接口,在领域层Core创建某一个实体的领域服务类,继承并实现IDomainService接口.在ABP框架中,领域服 ...