数组与Arrays

数组是程序中很常用的数据存储,集合List的底层也是通过数组操作的

1. 数组初始化有三种方式

直接初始化数组:int[] ary = {1, 2, 3};

初始化一个指定长度的空数组:int[] ary = new int[10];

初始化一个数组并赋值,不能指定长度:int[] ary= new int[]{1, 2, 3, 4};

数组长度:ary.length

数组克隆:int[] ary2 = ary.clone(),浅层克隆,如果数组中的元素为引用类型,则修改克隆后的数组元素中的属性,会影响原数组

数组复制:System.arraycopy(ary1, int n, ary2, int m, int length),将数组ary1从下标 n ~ n + length - 1 复制到ary2的 m ~ m + length - 1位置

2. java.util.Arrays

Arrays是官方提供的一个数组操作的工具类,通过该工具类我们可以满足我们常规的数组操作需要

String    toString(Object[] ary):将数组元素连接为字符串,连接后的表示形式为[1, 2, 3],一般用于查看数组元素信息

void     sort(Object[] ary, Comparator<? extends Object> comparator):对数组进行排序,第二个参数为自定义比较器,如果缺省第二个参数,则默认升

      序排序

int     binarySearch(Object[] ary, Object obj):二分法查找数组中obj元素的位置,返回元素下标,如果不存在,则返回一个负数,该方法使用注意两点

       使用前要对数组进行排序,否则返回结果一般不正确

       未查找到元素时,返回一个负数,不一定是-1,不能以-1判断是否查找到结果

void   fill(Object[] ary, Object obj):使用元素obj填充数组

Object[]   copyOf(Object[] ary, int n):复制数组的前n位元素,返回新数组,如果n大于数组的长度,则超出部分为初始化值,可用于数组扩容

Object[]   copyOfRange(Object[] ary, int from, int to):复制数组下标from到to的元素,并返回新数组

boolean   equals(Object[] ary1, Object[] ary2):比较两个数组是否相等,如果数组都不为空,则比较元素是否相等

       如果元素类型为基本数据类型,使用==比较

       如果元素类型为引用数据类型,使用equals比较

boolean   deepEquals(Object[] ary1, Object[] ary2):深度比较两个数组是否相等,主要针对数组元素也是数组的情况,会递归比较下级元素,直到最深层元

       素都进行比较

时间: 2024-11-10 16:16:08

数组与Arrays的相关文章

c语言实现动态指针数组Dynamic arrays

c语言实现动态数组. 基本原理:事先准备好一个固定长度的数组.如果长度不够的时候,realloc一块区域.另外:在数组元素减少的情况下,需要缩减数组长度. 主要接口: cp_bool DyArrayAppend(DyArray* pArr, void* pData)//加数据到数组末尾 cp_bool DyArrayExpand(DyArray* pArr, cp_int32 nNeed)//扩展数组 cp_bool DyArrayDelete(DyArray* pArr, cp_int32 n

CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)

数组是存储同一类型数据的数据结构 数组的声明与初始化 int[] a; int a[]; int[] a = new int[100]; int[] a = new int[100]; for (int i = 0; i < 100; i++) a[i] = i; // fills the array with numbers 0 to 99 一旦创建就不可改变其大小 3.10.1 for each 循环 for each循环可以用来为数组赋值 for (variable : collectio

java数组中Arrays类

使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Arrays.toString(数组名)

java数组类Arrays:比较,填充,排序

int i1[] = {1,2,3,4,5,6}; int i2[] = {6,5,4,3,2,1}; //排序 Arrays.sort(i2); System.out.println(i1.equals( i2 )); System.out.println( Arrays.equals(i1, i2) ); //将数组2的内容填充3 Arrays.fill(i2, 3); System.out.println( Arrays.toString(i2) );

JAVA数组之Arrays类及其方法

public class Arraysextends Object此类包含用来操作数组(比如排序和搜索)的各种方法.此类还包含一个允许将数组作为列表来查看的静态工厂. 除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException. 此类中所含方法的文档都包括对实现 的简短描述.应该将这些描述视为实现注意事项,而不应将它们视为规范 的一部分.实现者应该可以随意替代其他算法,只要遵循规范本身即可.(例如,sort(Object[]) 使用的算法不必

关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递

基本元素为对象时,浅拷贝,拷贝引用(ArrayList 的clone()调用Arrays.copyof(),官方文档注明为浅拷贝) class A{ int a; public A(int a){ this.a=a; } public String toString(){ return a+""; } } A[] kk=new A[2]; kk[0]=new A(1); kk[1]=new A(2); A[] kkk=Arrays.copyOf(kk,2); System.out.pr

Learn Java - Chapter 1 变量(Variables)-数组(Arrays)

Java数组在被创建的时候确定数组长度.索引下标从0开始. 1.数组定义及初始化 int[] anArray;//定义 anArray = new int[2];//初始化 anArray[0] = 100;//赋值 anArray[1] = 200;//赋值    System.out.println("Element at index 0: " + anArray[0]);//使用 System.out.println("Element at index 1: "

虚幻引擎中的数组---TArray: Arrays

本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/45367171 作者:cartzhang 说明:这个为虚幻官方翻译的一篇文章. 原文地址:https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/TArrays/index.html 一个月前翻译的,官方很忙,自己先贴这里. 若有问题,请

WebGL2系列之实例数组(Instanced Arrays)

实例化数组 实例化是一种只调用一次渲染函数却能绘制出很多物体的技术,它节省渲染一个物体时从CPU到GPU的通信时间.实例数组是这样的一个对象,使用它,可以把原来的的uniform变量转换成attribute变量,而且这个attribute变量对应的缓冲区可以被多个对象使用:这样在绘制的时候,可以减少webgl的调用次数. 背景 假设这样的一个场景:你需要绘制很多个形状相同的物体,但是每个物体的颜色.位置却不一样,通常的做法是这样的: for(var i = 0; i < amount_of_mo