java数组基础知识,菜鸟教程java数组

  java数组基础知识,菜鸟教程java数组

  00-1010了解数组初始化;默认初始化;静态初始化;动态初始化;与数组遍历相关的问题;寻找最大值;查询子元素数组工具类2D数组2D数组初始模式2D数组遍历

  00-1010数组的定义

  数组是同一类型数据的有序集合。数组描述了许多相同类型的数据,这些数据按照一定的顺序排列组合。其中每个数据称为一个元素,每个元素都可以通过索引(下标)访问它们。

  数组的四个基本特征

  长度是一定的。一旦创建了数组,它的大小就不能更改。其元素必须是同一类型,不允许混合类型。数组类型可以是任何数据类型,包括基本类型和引用类型。数组索引:索引从0开始,到数组结束。长度-1。数组变量是引用类型,数组也是对象。PS:数组变量属于引用类型,数组也是对象。数组中的每个元素相当于对象的一个成员变量。数组本身是一个对象。在Java中,对象在堆中,所以数组对象本身存储在堆中,不管数组保存的是原始类型还是其他对象类型。

  数组下标从0开始。

  arr[0]==12

  arr[1]==6

  arr[2]==27

  …

  arr[5]==43

  00-1010数组有三种初始化方式:默认初始化、静态初始化和动态初始化。

  00-1010数组是引用类型,它的元素相当于类的实例变量。因此,一旦分配了数组的空间,数组中的每个元素都以与实例变量相同的方式隐式初始化。

  int[]arr=new int[3];//数组有默认的初始化值。基本数据类型数组的默认值:

  字节[] : 0

  short[] : 0

  cahr[] : u0000

  int[] : 0

  龙[] : 0

  float[] : 0.0

  double[] : 0.0

  boolean[] : false

  引用数据类型数组的默认值:null

  00-1010除了使用new关键字生成数组之外,还可以在定义数组的同时直接为数组元素分配空间和赋值。

  int[] arr={12,23,45 };int[] arr=new int[]{12,23,45 };

  00-1010数组定义与分配空间和给数组元素赋值的操作是分开的。

  int[]arr;arr=new int[3]arr[0]=12;arr[1]=23;arr[2]=45;

  

目录

 

  00-1010两种方法

  public class testcode 04 { public static void main(String[]args){ int[]arr 1=new int[]{ 1,2,3,4,5 };int[] arr2={5,4,3,2,1 };//模式1,使用普通for循环//arr1.length获取数组长度的方法(int I=0;i arr1 .长度;I){ system . out . print(arr 1[I] );} system . out . println();//模式2,对(int a : arr 2){ system . out . print(a )使用增强的for循环;} }}

  00-1010问题:给定一个数组int[] arr={3,5,6,17,26,9,0,7 };找到数组中最大的数字。

  公共类TestCode05 {公共静态void main(String[] args) { int[

  ] arr={3,5,6,17,26,9,0,7}; int max=arr[0];//假设最大元素为数组arr[0]位置上的数 //然后依次向后比较 for(int i=1;i<arr.length;i++){ //因为max=arr[0];可以从arr[1]位置开始比较 if(arr[i]>max){ max=arr[i]; } } System.out.println(max); }}

 

  

查询子元素

查询指定位置元素

 

  给定一个数组,查询索引位置为2上的元素

  

public class TestCode06 { public static void main(String[] args) { int[] arr={3,5,6,17,26,9,0,7}; //直接输出arr[2]; System.out.println(arr[2]); //输出-->6 }}

上面代码体现了数组的一个优点:在按照位置查询的时候,直接一步到位,效率非常高

 

  查询指定元素的位置–>找出元素对应的索引

  

public class TestCode07{ public static void main(String[] args){ //查询指定元素的位置-->找出元素对应的索引 //给定一个数组: int[] arr = {12,34,56,7,3,56}; // 0 1 2 3 4 5 //功能:查询元素12对应的索引: int index = -1; //这个初始值只要不是数组的索引即可 for(int i=0;i<arr.length;i++){ if(arr[i]==12){ index = i;//只要找到了元素,那么index就变成为i break;//只要找到这个元素,循环就停止 } } if(index!=-1){ System.out.println("元素对应的索引:"+index); }else{//index==-1 System.out.println("查无此数!"); } }}

 

  

Arrays工具类

为了方便我们对数组进行操作,系统提供一个类Arrays,我们将它当做工具类来使用。

 

  下面通过代码演示Arrays类中常用的方法:

  

Arrays.toString(arr);//对数组进行遍历查看,返回的是一个字符串

 

  Arrays.sort(arr);//对数组进行排序 -->升序

  Arrays.copyOf(arr,index);//对数组的复制

  Arrays.copyOfRange(arr,startindex,endindex);//区间复制

  Arrays.equals(arr1,arr2);//比较两个数组的值是否一样

  Arrays.fill(arr,1);//数组填充

  

import java.util.Arrays;public class TestCode08{ public static void main(String[] args){ //给定一个数组: int[] arr = {1,3,7,2,4,8}; //toString:对数组进行遍历查看的,返回的是一个字符串 System.out.println(Arrays.toString(arr)); //binarySearch:二分法查找:找出指定数组中的指定元素对应的索引: //这个方法的使用前提:一定要查看的是一个有序的数组: //sort:排序 -->升序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); System.out.println(Arrays.binarySearch(arr,4)); int[] arr2 = {1,3,7,2,4,8}; //copyOf:完成数组的复制: int[] newArr = Arrays.copyOf(arr2,4); System.out.println(Arrays.toString(newArr)); //copyOfRange:区间复制: int[] newArr2 = Arrays.copyOfRange(arr2,1,4);//[1,4)-->1,2,3位置 System.out.println(Arrays.toString(newArr2)); //equals:比较两个数组的值是否一样: int[] arr3 = {1,3,7,2,4,8}; int[] arr4 = {1,3,7,2,4,8}; System.out.println(Arrays.equals(arr3,arr4));//true System.out.println(arr3==arr4);//false ==比较左右两侧的值是否相等,比较的是左右的地址值,返回结果一定是false //fill:数组的填充: int[] arr5 = {1,3,7,2,4,8}; Arrays.fill(arr5,10); System.out.println(Arrays.toString(arr5)); }}

 

  

二维数组

本质上全部都是一维数组

 

  

 

  

二维数组初始方式

静态初始化

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

动态初始化

int[][] arr = new int[3][]; //本质上定义了一维数组长度为3,每个“格子”中放入的是一个数组arr[0] = new int[]{1,2};arr[1] = new int[]{3,4,5,6};arr[2] = new int[]{34,45,56};

默认初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

 

  

int[][] arr=new int[3][3];//定义一个3*3的二维数组,默认值为0

 

  

二维数组的遍历

两个for循环

 

  

 for (int i = 0; i < arr.length; i++) { for (int j = 0; i < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println();//换行 } }

到此这篇关于Java零基础入门数组的文章就介绍到这了,更多相关Java 数组内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: