首页 > 其他分享 >Arrays常用API

Arrays常用API

时间:2024-09-28 23:20:40浏览次数:9  
标签:常用 Arrays 元素 int API 数组 长度 asList

Arrays常用API

本文主要总结了JAVA的Arrays工具类的常见使用方法,该工具类在机试刷题、面试过程中经常被问到,阅读完建议自己实践实践。

1.常见API:

1 Arrays.toString()  //输出数组的内容(基本数据类型)

2 Arrays.sort(arr); //排序,默认是升序

3 Arrays.binarySearch(int[] a, int key)//前提数组是有序的
//元素存在返回索引号.如果元素不存在返回的规则为:负的(要找的元素应该出现的索引位置+1)

4 Arrays.asList()
//返回的列表元素不能进行删除和添加元素,因此可以在其前面加上new ArrayList<>( ** )

5 Arrays.fill(arr, val) //填充数组
6 Arrays.copyOf(arr, length) //数组的复制:返回的是一个新的数组对象
第一个变量表示原来的数组对象.第二个变量表示新的数组的长度,如果新数组的长度超过原数组的长度,保留数组元素的默认基本类型的值。

2. 重要方法讲解

2.1 Arrays.sort()

底层原理是插入排序 + 快速排序 + 归并排序,具体规则为:

 1. 数组长度小于47 插入排序
 2. 数组长度在[47, 286] 快速排序(双基准, 三路快排)
 3. 数组长度大于286 归并排序

底层:数组长度小于int QUICKSORT_THRESHOLD = 286 286这个阈值时,且大于int
INSERTION_SORT_THRESHOLD = 47
47是,采用的就是快速排序了,小于47就采用插入排序。长度大于286后,就会采用归并排序了。


参考:https://blog.csdn.net/Azir_/article/details/119250369

2.2 Arrays.stream()

使用 Arrays.stream() 方法可以将数组转换为流,然后就可以对数组中的元素进行各种操作,例如过滤,映射,排序等。

https://blog.csdn.net/m0_61594817/article/details/128716814

Arrays.stream() 函数可以将数组转换为流,使用流API可以更简洁的处理数组中的数据,在大量数据的情况下可以提高性能。

方法:

https://blog.csdn.net/weixin_52279910/article/details/125543330

总:https://blog.csdn.net/weixin_42421269/article/details/121703730

2.3 Arrays.binarySearch(int[] a, int key)

元素存在返回索引号;如果元素不存在返回的规则为:负的(要找的元素应该出现的索引位置+1

//排完序为[3, 4, 11, 20, 59]	
	System.out.println(Arrays.binarySearch(arr,4 ));//返回1
	System.out.println(Arrays.binarySearch(arr, 9)); //返回-3
	System.out.println(Arrays.binarySearch(arr, 100));//返回-6

2.4 Arrays.copyOf()

数组的复制:返回的是一个新的数组对象
第一个变量表示原来的数组对象.第二个变量表示新的数组的长度,如果新数组的长度超过原数组的长度,保留数组元素的默认基本类型的值。

 int[] arr1 = {1, 2, 3, 4, 5}; 
    int[] arr2 = Arrays.copyOf(arr1, 5);
    int[] arr3 = Arrays.copyOf(arr1, 10);
    for(int i = 0; i < arr2.length; i++) 
        System.out.print(arr2[i] + " "); 
    System.out.println();
    for(int i = 0; i < arr3.length; i++) 
        System.out.print(arr3[i] + " ");
//输出
1 2 3 4 5 
1 2 3 4 5 0 0 0 0 0  

2.5 Arrays.asList()

Arrays.asList()方法可以将数组元素转换为list元素。(使用过程记得加上new ArrayList<>( Arrays.asList( ) );)

String[] myArray = { "Apple", "Banana", "Orange" }; 
List<String> myList = Arrays.asList(myArray);
//或者
List<String> myList = Arrays.asList("Apple", "Orange");
 //myList.add("Guava"); 
 //java.lang.UnsupportedOperationException 异常!
 //这一异常意味着,向 myList 添加新元素是不被允许的;如果试图从 myList 中删除元素,也会抛出相同的异常。

注意:

1.生成的list元素是不可变的列表,不可以进行添加或者删除元素

2.不支持基本数据类型数组的转换

解决方案:

1创建真正的LIst对象

  String[] myArray = { "Apple", "Banana", "Orange" };
      List<String> myList = new ArrayList<String>(Arrays.asList(myArray));

2创建list,然后遍历整个数组

https://www.jianshu.com/p/2b113f487e5e

https://blog.csdn.net/Duuuhs/article/details/89739358

标签:常用,Arrays,元素,int,API,数组,长度,asList
From: https://blog.csdn.net/qq_42018605/article/details/142623658

相关文章

  • 在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
    前言:什么是操作筛选器操作筛选器是ASP.NETCoreWebAPI中的一种过滤器,用于在执行控制器操作(Action)之前或之后执行一些代码,完成特定的功能,比如执行日志记录、身份验证、授权、异常处理等通用的处理逻辑。每次ASP.NETCoreWebAPI中控制器的操作方法被执行的时候,操作筛选器......
  • 常用类--StringBuffer
    StringBuffer:可变的字符序列,可以看作一个存储字符的一个容器构造方法:publicStringBuffer()publicStringBuffer(intcapacity)publicStringBuffer(Stringstr)点击查看代码publicclassStringBufferDemo1{publicstaticvoidmai......
  • 08 常用:写入 读取文件格式为:alex|123
    练习1:请将user中的元素根据_链接,并写入'a1.txt'的文件"""user=['alex','eric']data="_".join(user)file_object=open('a1.txt',mode='w',encoding='utf-8')file_object.write(data)fil......
  • 常用类--String
    ==比较:1、比较的是两个基本数据类型的话,比较两个数值是否相等2、比较的是两个引用数据类型的话,比较的是两个对象的地址值是否相等字符串:由若干个字符构成的字符序列叫做字符串String类代表字符串。字符串不变;它们的值在创建后不......
  • 13安卓手机端自动化框架常用的辅助命令
    一.adb命令1.查询已连接的设备C:\Users\Administrator>adbdevicesListofdevicesattached127.0.0.1:21503device2.连接设备adbconnect127.0.0.1:215033.登录设备shellC:\Users\Administrator>adbshellMI9:/#4.查询安装的软件包MI9:/#pmlistpackage......
  • 常用开源协议商用限制解读
    本文阐述常用开源协议的商用限制。GPL协议如果在项目中使用了GPL协议的组件,那么项目也必须是GPL协议的。即:“我帮了你,你也要帮助别人”。更进一步说,使用了GPL协议软件的项目也必须是开源项目,而且必须遵守GPL协议。如果商用项目是闭源的,则不能使用GPL协议软件。LGPL协议LGPL......
  • 常用类--Scanner,object
    Scanner`Scanner:一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串构造方法:Scanner(InputStreamsource)构造一个新的Scanner,产生从指定输入流扫描的值。`获取一个数字:(无法输出空格,只能输出空格前的数字)inti=sc.nextInt();......
  • 【大数据入门 | Hive】hiveSQL常用语句
    1.数据准备①在/opt/module/hive/datas/路径上创建dept.txt文件,并赋值如下内容:部门编号部门名称部门位置id[atguigu@hadoop102datas]$vimdept.txt10 行政部 170020 财务部 180030 教学部 190040 销售部 1700②在/opt/module/hive/datas/路径上创建emp.txt文件,并......
  • C# ASP.NET Core Web API 框架 实现向手机发送验证码短信
    本文章主要是在C#ASP.NETCoreWebAPI框架实现向手机发送验证码短信功能。这里我选择是一个互亿无线短信验证码平台,其实像阿里云,腾讯云上面也可以。首先我们先去互亿无线https://www.ihuyi.com/api/sms.html去注册一个账号注册完成账号后,它会送10条免费短信以及通话验证......
  • 准备蓝桥杯和ACM:C++标准库头文件及其常用功能简介
    概述        在C++编程中,标准库为开发者提供了丰富的工具和功能,使得代码更简洁、易于维护。本文将深入探讨一些常用的C++标准库头文件,如<iostream>、<algorithm>、<string>等,以及它们所提供的基本功能与常见用法。通过对这些头文件的理解和应用,开发者能够更加高效地......