数组学习个人笔记

目录

数组

数组的定义:

数组的创建:

数组的基本操作

遍历数组

Arrays 类数组中的应用

 

数组学习中涉及过的关键词及相关用法


 

数组

***本文章多为个人学习收集的资料及个人一些学习认识,如有侵权,请及时联系作者,因作者也是刚学习的小白,文章中有错误或者描述不准确的地方,欢迎各位大佬指出改正。***

数组的定义

一组具有相同数据类型的数据的集合

数组包括一维数组、二维数组、三维数组及多维数组;

 

 

在数组a上, 可以访问他的属性,也可以调用一些方法。这基本上可以认定,java中的数组也是对象,它具有java中其他对象的一些基本特点:封装了一些数据,可以访问属性,也可以调用方法。所以,数组是对象。C++中的数组不是对象,只是一个数据的集合,而不能当做对象来使用。

数组的创建

创建一维数组并赋值:数组元素类型  数组名称  [];

int a []=new int []{1,2,3,4,5,6,};

创建二维数组并赋值:数组元素类型  数组名称  [i] [j];

int arr[][]=new int [][]{{1,2,3},{4,5,6},{,7,8,9}};

创建三维数组并赋值:数组元素类型  数组名称  [i] [j] [n];

Int arr [] [] []=new int [] [] []{{{1,2,3},{4,5,6}},{{7,8,9},{9,8,7}},{{6,5,4},{3,2,1}}}

注:

其中[i][j]代表二维数组中有ij长度的一维数组。

数组的下标都是从0开始的;例如a[0]=1;a[1]=2…..a[5]=6;

数组元素用逗号隔开,二维数组中每个一维数组用逗号隔开。

二维数组是以一维数组为基本单元,

三维数组是以二维数组为基本单元

简单的理解,二维数组为平面坐标(行、列),而三维数组为立体坐标(长、宽、高)。三维数组在遍历时,需要使用三层for循环结构     嵌套。在理解三维数组时,可对三维数组进行拆分int[2][1][0]代表三维数组中下标为2的二维数组(即{{6,5,4},{3,2,1}})中下标为1的一维数组(即{3,2,1})中下标为0的元素(即3

 

数组的基本操作

遍历数组

使用for循环进行遍历数组,for循环遍历数组方式:

For(int i=0;i<数组名称.length;i++){}

For(int  i :数组名称){}

Arrays 类数组中的应用

使用Arrays类需要导入。

Import   java.util.Arrays;

填充替换数组元素     fill

通过Arrays类的静态方法fill()来实现对数组中元素进行填充替换。

  1. fill(int [] a,int value);//对数组a填充数据value

int [] a :将要替换元素的数组;

int value:将要替换元素的值;

例如

Int []a=new int [5];//创建元素为5个长度的整形数组。

Arrays.fill(int[]a,9);//将数组 a中的元素替换成

For(int i=0;i<a.length;i++){}//替换完成后遍历数组输出

  1. fill(int []a;int  fromIndex();int  toIndex();int  value);

//该方法将指定的值分配给数组指定范围内的每一个数值。(就是替换填充数组范围内的数值)

Int [] a:将要替换的数组

Int   fromIndex():要进行填充的第一个元素的索引(包括这个元素)(填充范围的第一个值)

Int   toIndex():要进行填充的最后一个元素的索引(不包括此元素)(填充范围的最后一个值)

填充替换的范围fromIndex=< value<toIdex 

Int   value:要填充替换的数据

例: int []arr=new int[] {1,2,3,4,5,6,7};//创建一维数组并赋值

              Arrays.fill(arr,3,5,9);//将数组中第三位到第五位的数组元素替换为9,(数组下标从0开始)

循环遍历数组输出:

{1,2,3,9,9,9,7}

对数组进行排序  sort

通过Arrays类静态方法sort()可实现对数组内元素的排序(只能升序), 

Arrays.sort(object)

Object:指进行排序的数组名称

例如:  int []a=new int[] {2,5,6,9,7,1,3,4,8};

                     Arrays.sort(a);//对数组进行升序排序

循环遍历数组输出:

{1,2,3,4,5,6,7,8,9}

------------------------------------------对数组进行降序排序------------------------

在循环遍历数组时,for(int i=avg.length-1;i>=0;i--){

使临时变量(下标) i等于数组长度-1(数组长度=下标+1),使下标i自减,至i=0.

------------------------------------------------------------------------------------------------

复制数组   copyOf()/copyOfRange()

Arrays类中的copyOf()与copyOfRange()方法可实现对数组的复制。

 

copyOf()

 

copyOf(arr,int newlength)

arr:要进行复制的数组

int  newlength:复制后新数组的长度

若新数组比原数组的长度要长,则新数组后补0

例:int []old=new int[] {1,2,3};//定义一个长度为3的int数组

int []new=Arrays.copyOf(old,5);//将长度为3的int数组复制到长度为5的新数组里

循环遍历数组后输出

Int new[]={1,2,3,0,0}

       若新数组比原数组的长度短,则新数组复制后从原数组的0标开始复制新长度的值。

例:int []old=new int[] {1,2,3,4,5};//定义一个长度为5的int数组

int []new=Arrays.copyOf(old,3);//将长度为3的int数组复制到长度为5的新数组里

循环遍历数组后输出

Int new[]={1,2,3 }

 

copyOfRange()

 

copyOfRangr(arr,int  fromIndex(),int  toIndex);

arr:要进行复制的数组

Int   fromIndex():要进行复制的第一个元素的索引位置(fromIndex必须在0-数组长度范围内,并且包括此范围开始值)复制范围的起始值,复制时包括此元素值.

 

Int   toIndex():要进行复制的最后一个元素的索引位置(toIndex可以大于数组长度,,但不包括此此元素索引位置. 复制范围的截止值,复制时不包括此元素值,可以大于原数组长度。

总的来讲,新数组复制原数组的某一范围的元素值,开始(包括)到截止(不包括)范围内的值--------

 

int [] newarr=Arrays.copyOfRange(arr, 0,4);//创建新数组并复制(第0位至第4位)长度元素

              System.out.println("\n复制(第0位至第4位)长度元素后的数组");//实际复制的是第0位到第3位四个数字

              for (int i=0;i<newarr.length;i++) {

                     System.out.print(newarr[i]+" ");

              }

              int [] newlength=Arrays.copyOfRange(arr,0,9);//创建新数组并复制(第0位至第8位)长度元素

              System.out.println("\n复制(第0位至第9位)长度元素后的数组");//实际复制的是第0位到第7位8个数字

              for (int l=0;l<newlength.length;l++) {

                     System.out.print(newlength[l]+" ");

              }

              int [] newarrays=Arrays.copyOfRange(arr,3,6);//创建新数组并复制(第3位至第6位)长度元素

              System.out.println("\n复制(第3位至第6位)长度元素后的数组");//实际复制的是第3位到第5位3个数字

              for (int k=0;k<newarrays.length;k++) {

                     System.out.print(newarrays[k]+" ");

输出结果:

原来的数组是

1 2 3 4 5 6

复制(第0位至第4位)长度元素后的数组

1 2 3 4

复制(第0位至第9位)长度元素后的数组

1 2 3 4 5 6 0 0 0

复制(第3位至第6位)长度元素后的数组

4 5 6

转化为字符串输出  toString

public class ArraysTest{

   public static void main(String[]args) {

      int []trace=new int [] {1,2,3};

        System.out.println(Arrays.toString(trace));

输出

[1, 2, 3]

 

数组学习中涉及

过的关键词及相关用法

  1. Length

length() 方法用于返回字符串的长度。

length  属性用于返回数组长度。

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.

2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.

3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

int[] arr = new int[3];

System.out.println(arr.length);//使用length获取数组的程度

 

String str = "abc";

System.out.println(str.length());//使用length()获取字符串的长度

 

为什么Stringlength()方法?

 

String背后的数据结构是一个char数组,所以没有必要来定义一个不必要的属性(因为该属性在char数值中已经提供了)。和C不同的是,Java中char的数组并不等于字符串,虽然String的内部机制是char数组实现的

为什么数组有length属性?

 

首先,数组是一个容器对象(Java中的数组是对象吗?),其中包含固定数量的同一类型的值。一旦数组被创建,他的长度就是固定的了。数组的长度可以作为final实例变量的长度。因此,长度可以被视为一个数组的属性。

有两种创建数组的方法:1、通过数组表达式创建数组。2、通过初始化值创建数组。无论使用哪种方式,一旦数组被创建,其大小就固定了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值