Java中数组的详细介绍

来源:互联网 发布:传销组织 知乎 编辑:程序博客网 时间:2024/05/16 12:16

Java中数组的详细介绍

一:数组的概述

数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。使用java数组,必须经过两个步骤,声明数组和分配内存给该数组。数组中的数据类型可以是基本数据类型,也可以是引用数据类型。

1.一维数组

一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。

2.二维数组

如果可以把一维数组当做几何中的一条线图形,那么二维数组就相当于一个表格(有XY轴)。

3.多维数组

如果可以把一维数组当做几何中的一条线图形,二维数组就相当于一个表格,多维数组可以相当于多维空间。java中没有 多维数组,只有数组的数组,即有一个数组中的每一个元素又是一个数组。

二:数组的声明、创建、初始化

1.数组的声明【声明数组时不能指定其长度(数组中元素的个数)】

a.一维数组

int[] IArray 或者 int IArray[]     基本数据类型数组,数组中存放的是基本数据类型。

Teacher[] tArray 或者 Teacher tArray[]    类类型数组,数组中存放的是Teacher类创建的若干个的对象。

b.二维数组

int[][] IArray 或者 int IArray[][]

Teacher[][] tArray 或者 Teacher tArray[][] 

c.多维维数组【多维数组不常用,了解就好】

int[]……[] IArray 或者 int IArray[]……[]

Teacher[]……[] tArray 或者 Teacher tArray[]……[] 

2.数组的创建【Java中使用关键字new创建数组对象】

格式为:

IArray  = new int [5]    一维数组

IArray  =new int[5][5]  二维数组

IArray  =new int[5]……[5]  多维维数组

注释:二维多维数组的创建方式跟一位创建方式一致

3.数组的初始化

数组的初始化可以分为动态初始化、静态初始化和默认初始化。

a.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
b.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
c.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。

A:动态初始化

    int a[] ;       //声明
    a = new int[3] ;//创建  
    a[0] = 0 ;      //初始化
    a[1] = 1 ;  
    a[2] = 2 ;  

B:静态初始化

     int a[] ;       //声明
     a = new int[]{0,1,2};  //创建、初始化

C:默认初始化【默认初始化,赋值为该类型的默认值】

     int a [] = new int [5] ;     
     System.out.println("" + a[3]) ; //输出的值为0

二维跟多维的案例,我就不做演示了。

注意:数组的声明、创建、初始化可以一步完成

例如:int a[] =new int[]{0,1,2}  //声明、创建、初始化

三:数组的常用方法

1.打印数组中的元素Arrays.toString(数组)
int[] intArray = { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(intArray));
   
2.查看数组中是否存在某个值Arrays.asList(数组)将Array转换成List<String>,contains函数来判断元素是否存在
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);


四:ArrayUtils工具类的常用方法

1.toString:将一个数组转换成String,用于打印数组
String [] stringarr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.toString(stringarr));
打印结果:{爷爷,奶奶,姥姥,姥爷}

2.isEquals:判断两个数组是否相等,采用EqualsBuilder进行判断
String[]stringArr1=new String[]{"爷爷","奶奶","姥姥","姥爷"};
String[]stringArr2=new String[]{"爷爷","奶奶","姥姥","姥爷1"};
System.out.println(ArrayUtils.isEquals(stringArr1, stringArr2));
打印结果:false

3.toMap:将一个数组转换成Map,如果数组里是Entry则其Key与Value就是新Map的Key和Value,如果是Object[]则Object[0]为KeyObject[1]为Value
String [][] stringarr=new String[][]{{"0","爷爷"},{"1","奶奶"},{"2","姥姥"},{"3","姥爷"}};
System.out.println(ArrayUtils.toMap(stringarr).get("0"));
System.out.println(ArrayUtils.toMap(stringarr).get("2"));
打印结果:

爷爷
姥姥

4.clone:拷贝数组
String [] stringarr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.toString(ArrayUtils.clone(stringarr)));
打印结果:{爷爷,奶奶,姥姥,姥爷}

5.subarray:截取子数组
String [] stringarr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.toString(ArrayUtils.subarray(stringarr, 0, 2)));
打印结果:{爷爷,奶奶}
            
6.isSameLength:判断两个数组长度是否相等
String[]stringArr1=new String[]{"爷爷","奶奶","姥姥","姥爷"};
String[]stringArr2=new String[]{"爷爷","奶奶","姥姥","姥爷1"};
String[]stringArr3=new String[]{"爷爷","奶奶","姥姥"};
System.out.println(ArrayUtils.isSameLength(stringArr1, stringArr2));
System.out.println(ArrayUtils.isSameLength(stringArr1, stringArr3));
打印结果:
true
false

7.getLength:获得数组的长度
String[]stringArr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.getLength(stringArr));
打印结果:4

8.isSameType:判段两个数组的类型是否相同
String[]stringArr1=new String[]{"1","2","3","4"};
String[]stringArr2=new String[]{"1","2","3","4"};
int[]intArr2=new int[]{1,2,3,4};
System.out.println(ArrayUtils.isSameType(stringArr1, stringArr2));
System.out.println(ArrayUtils.isSameType(intArr2, stringArr2));
打印结果:
true
false

9.reverse:数组反转
String[]stringArr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
ArrayUtils.reverse(stringArr);
System.out.println(ArrayUtils.toString(stringArr));
打印结果:{姥爷,姥姥,奶奶,爷爷}

10.indexOf:查询某个Object在数组中的位置,可以指定起始搜索位置,如果没有该值则返回-1
String[]stringArr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.indexOf(stringArr, "爷爷", 0));
System.out.println(ArrayUtils.indexOf(stringArr, "爷", 0));
打印结果:
0
-1

11.lastIndexOf:反向查询某个Object在数组中的位置,可以指定起始搜索位置
String[]stringArr=new String[]{"爷爷","奶奶","姥姥","姥爷"};
System.out.println(ArrayUtils.lastIndexOf(stringArr, "爷爷", 0));
System.out.println(ArrayUtils.lastIndexOf(stringArr, "爷", 0));
打印结果:
0
-1

12.contains:查看数组中是否存在某个值Arrays.asList(数组)将Array转换成List<String>,contains函数来判断元素是否存在
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷" };
boolean b = Arrays.asList(stringArray).contains("爷爷");
System.out.println(b);
打印结果:true

13.toObject:将基本数据类型转换成外包型数据
int[]intArr2=new int[]{1,2,3,4};
System.out.println(ArrayUtils.toString(ArrayUtils.toObject(intArr2)));
打印结果:{1,2,3,4}

14.isEmpty:判断数组是否为空(null和length=0的时候都为空)
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷" };
System.out.println(ArrayUtils.isEmpty(stringArray));
打印结果:false

15.addAll:合并两个数组【数组间类型要一致】
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷" };
String[] stringArray1 = {"1","2","3","4" };
System.out.println(ArrayUtils.toString(ArrayUtils.addAll(stringArray, stringArray1)));
打印结果:{爷爷,奶奶,姥姥,姥爷,1,2,3,4}

16.add:添加一个数据到数组
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷" };
System.out.println(ArrayUtils.toString(ArrayUtils.add(stringArray, "姑姑")));
打印结果:{爷爷,奶奶,姥姥,姥爷,姑姑}

17.remove:删除数组中某个位置上的数据
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷","姥姥" };
System.out.println(ArrayUtils.toString(ArrayUtils.remove(stringArray,2)));
打印结果:{爷爷,奶奶,姥爷}

18.removeElement:删除数组中某个对象(从正序开始搜索,删除第一个)
String[] stringArray = {"爷爷","奶奶","姥姥","姥爷","姥姥" };
System.out.println(ArrayUtils.toString(ArrayUtils.removeElement(stringArray,"姥姥")));
打印结果:{爷爷,奶奶,姥爷,姥姥}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 斗鱼直播太卡怎么办 神笔添加视频尺码不符合怎么办 闲鱼卖家单号填错了怎么办 户户通没有信号强度怎么办 全民k歌qq登不上怎么办 手机直播没电了怎么办 淘宝退货卖家拒收怎么办 充的会员卡店家关门了怎么办 淘宝手机号码被注册了怎么办 淘宝不支持七天无理由退货怎么办 微信视频横屏怎么办 房子里潮气太重怎么办 淘宝不小心注销了怎么办 淘宝号不小心注销了怎么办 xp网络驱动没了怎么办 淘宝卖家客服态度差怎么办 怀孕吃辣椒喉咙好痛怎么办 淘宝店铺建议不要提交认证怎么办 淘宝买东西商家不退款怎么办 淘宝买东西商家不发货怎么办 在微信上买东西被骗了怎么办 新浪微博自动关注人怎么办 搜淘宝找不到关键词和店铺怎么办 小超市开在一起竞争太大怎么办 淘宝店铺被投诉盗图怎么办 充电宝ic坏了怎么办 淘宝店宝贝权重下降怎么办 淘宝卖家评分低怎么办 淘宝买东西客服不理人怎么办 支付宝本次交易嫌疑违规怎么办 支付宝一年的交易总额怎么办 交易关闭钱扣了怎么办 交易猫账号绑定支付宝打不开怎么办 拼多多涉假处罚怎么办 淘宝店铺重复铺货扣6分怎么办 帆布鞋子买大了怎么办 开淘宝店没销量怎么办 开淘宝店没有销量怎么办 淘宝买东西支付密码错了怎么办 淘宝登入密码忘记了怎么办 逛街时手机没电了怎么办