JAVA中数组Arrays类的常见用法
import java.util.Arrays;
int[] array1={7,8,3,2,12,6,5,4};
1. //克隆clone
int[] array2=array1.clone();
System.out.println("arry2克隆的结果是:"+Arrays.toString(array2));
2. //复制copyof
①方法一:
int [] array3=Arrays.copyOf(array1, 4); // "4"表示复制的长度
System.out.println("arry3复制copyof的结果:"+Arrays.toString(array3)); //输出:[7,8,2,12]
②方法二:
System.arraycopy(src, srcPos, dest, destPos, length);
src -- 这是源数组.
srcPos -- 这是源数组中的起始位置。
dest -- 这是目标数组。
destPos -- 这是目标数据中的起始位置。
length -- 这是一个要复制的数组元素的数目。
异常:
IndexOutOfBoundsException -- 如果复制会导致访问数组边界之外的数据
ArrayStoreException -- 如果src数组中的元素不能被存储到dest数组中,因为类型不匹配
NullPointerException -- 如果src或dest为null
例,
int arr1[] = { 0, 1, 2, 3, 4, 5 };
int arr2[] = { 11, 10, 20, 30, 40, 50 };
//从数组arr1中的第0个位置开始复制3个数,复制到arr2中,从b中的1位置开始存放
System.arraycopy(arr1, 0, arr2, 1, 3);
System.out.println(Arrays.toString(arr2)); //输出:[11, 0, 1, 2, 40, 50]
3.判断两个数组是否相等:
String[] a={"a","b","c"};
String[] b={"a","b","c"};
System.out.println(a.equals(b));//false
System.out.println(a == b);//false
System.out.println(Arrays.equals(a, b));//true
注意:
基本数据类型的数组的equals方法没有重载Object的equals方法,所以跟“==”效果一样 ,所以你这里 a.equals(b) 效果和 a == b是一样的,==比较的是内存地址,结果是false。
如果想要比较内容相同,可以使用Arrays.equals(a,b)。
4. //对数组的第2个到第7个进行排序进行排序
Arrays.sort(array1,2,8);
System.out.print("对数组的第2个到第6个元素进行排序进行排序:Arrays.sort(array1,2,7):");
System.out.println(Arrays.toString(array1));
5. //将arry1整体排序 sort
Arrays.sort(array1);
//toString 转换为字符串
System.out.println("排序后的arry1的值:"+Arrays.toString(array1));
6. //排序后arry1与arry2是否还相等 equals
System.out.println("排序后arry1与arry2是否还相等:"+Arrays.equals(array1, array2));
7. //填充 fill
Array.fill(arrayname,value);
Array.fill(arrayname ,starting index ,ending index ,value)
例,
Arrays.fill(array3, 6); //将数字6填充到数组array3,输出:{6,6,6,6,6,6,6,6}
Arrays.fill(array3, 2, 4, 9); //将数组9从索引值2填充到索引值4
System.out.println("填充之后arry2的值:"+Arrays.toString(array3));//输出:{7,8,6,6,12,6,5,4}
8. //查询binarySearch
System.out.println("数字6在arry1中的位置:"+Arrays.binarySearch(array1, 6));
9. //将数组array1转换为List
String[] name=new String[]{"a","b","c"};
//转换为集合
List<String> list=Arrays.asList(name);
System.out.println(list);
10.数组的删除:
ArrayList<Integer> a = new ArrayList<Integer>();
for(int i=0;i<10;i++){
a.add(i);
}
a.remove(1);
System.out.println(a); //输出:[0, 2, 3, 4, 5, 6, 7, 8, 9]
11.数组的查找:
①第一种方法:(这种方法需要用动态数组ArrayList)
ArrayList a = new ArrayList();
for(int i=0;i<10;i++){
a.add(i);
}
a.remove(0);
System.out.println(a); //输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
System.out.println(a.contains(1)); //返回boolea值 输出:true
②第二种方法:
int[] aa={1,2,3};
System.out.println("数字2在数组aa中的位置:"+Arrays.binarySearch(aa, 2)); //返回索引值 输出:1
注意:Java中Arrays的asList()方法 可以将数组转为List 但是,这个数组类型必须是引用类型,如果是8种基本数据类型就不可以!

JAVA中数组Arrays类的常见用法的更多相关文章
- JAVA中数组的基本概念与用法
JAVA中数组的基本概念与用法 1. 数组的定义与特点 数组的一种引用数据类型 数组中可以同时存放多个数据,但是数据的类型必须统一 数组的长度在开始时就需要确定,在程序运行期间是不可改变的 虽然可以使 ...
- Java中数组Arrays.binarySearch,快速查找数组内元素位置
在数组中查找一个元素,Arrays提供了一个方便查询的方法.Arrays.binarySearch(): 测试列子: public class MainTestArray { public stati ...
- Java中的Arrays类使用详解
首先先创建一个打印数组的方法,方便后面直接使用 public static void output(int []a) { for(int i=0;i<a.length;i++) { System ...
- java中的Arrays类
今天刚接触了数组,学到了几个比较常用的方法 Fill方法:给数组赋值 sort方法:给数组升序 equals方法:比较数组中元素 值是否相等 binarySearch方法:对排序好的数组进行二分查找法 ...
- Java中数组的特性
转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...
- Java中的Unsafe类111
1.Unsafe类介绍 Unsafe类是在sun.misc包下,不属于Java标准.但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty.Hadoo ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
- java 中常用的类
java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l static double abs(double a) 获取double 的绝对值 l sta ...
- java中数组以及集合
java中数组: 数组在Java里是一种特殊类型,有别于普通的“类的实例”的对象.但实际数组也是一种对象类型,int[]a = new int[5] a是在java栈中分配的引用变量,类型是int[ ...
随机推荐
- Solr入门(一)
一丶Solr入门1.Solr的启动Solr各版本下载老版本的时候,需要将war包放到tomcat中,现在只需解压,由于自带jetty容器,可以直接启动 [root@aaa bin]# ./solr s ...
- CSAPP:代码优化【矩阵读写】
转载请注明出处:https://www.cnblogs.com/ustca/p/11790314.html 写程序最主要的目标就是使它在所有可能的情况下都正确工作,另一方面,在很多情况下,让程序运行得 ...
- 阿里巴巴 Kubernetes 应用管理实践中的经验与教训
作者 | 孙健波(阿里巴巴技术专家).赵钰莹 导读:云原生时代,Kubernetes 的重要性日益凸显.然而,大多数互联网公司在 Kubernetes 上的探索并非想象中顺利,Kubernetes 自 ...
- [考试反思]0825NOIP模拟测试31:喘息
好吧,我又活了 大脸又. 240,220,210,200,200... T1是个不会证明的傻子找规律算上看了一遍三道题之后一共20分钟搞定. skyh打的是错的可是成功qj全部测试点得到AC(会被手模 ...
- 详解SpringBoot应用跨域访问解决方案
一.什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访 ...
- 6.1Hadoop属性Configuration配置API
6.1 Hadoop属性配置API Hadoop需要添加一些自定义的属性值,可以通过Configuration类的实例来加载xml配置文件中的属性值. (1) xml配置文件的格式 <?x ...
- 大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)
一.equals与==比较不同 在实现某个人去5个商场去购物,控制台输入是否购物(Y/N)的时候,在比较出了问题,发现无论输入什么都是false,后来查阅资料发现,字符串的比较,==和equals不一 ...
- 『题解』洛谷P1993 小K的农场
更好的阅读体验 Portal Portal1: Luogu Description 小\(K\)在\(\mathrm MC\)里面建立很多很多的农场,总共\(n\)个,以至于他自己都忘记了每个农场中种 ...
- JDK安装脚本
JDK@Python脚本代码如下(JDK1.8.0_31) # -*- coding: utf-8 -*- # !/usr/bin/env python # @Time : 2018/1/2 18:0 ...
- Linux学习(推荐学习资源)——保持更新
1. 介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程序和网络协议. ...