Java数组定义学习的一些随笔

//一维数组的定义
		int[] arr1 = new int[3];//arr1 = {1,2,3}; 错误
		int[] arr2 = new int[]{1,2,3};//int[] arr2 = new int[3]{1,2,3}; 错误
		int arr3[] = {4,5,6};
		//二维数组的定义
		//二维数组中一维数组长度一致的数组
		int[][] arr4 = new int[2][3];

		//二维数组中一维数组长度不一致的数组  2个一维数组 一个长度2 一个长度3
		int[][] arr5 = new int[2][];
		arr5[0] = new int[2];
		arr5[1] = new int[3];
		//遍历
		for(int[] i : arr5){
			for(int k : i){
				System.out.println(k);
				if(k == i.length - 3)
					System.out.print("good");//这里边有个有趣的问题
			}
		}

  ps

  1. 数组声明时,int[] arr 与 int arr[] 都是可以的

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

      

  2. 初始化时,才能使用大括号{, , ,},声明完arr1 ,如果赋值是这样 arr1 = {1,2,3};是错误的,应该单独赋值或使用循环,arr1[0] = 1
  3. 初始化时,使用大括号时不应该数组加长度 ,int[] arr2 = new int[3]{1,2,3};这个语句是错误的

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

      

  4. 再使用foreach遍历的时候,以上输出代码的结果是

    0
    0
    0
    good0
    good0
    good
    

      二维数组arr5是没有被初始化的,所以默认值都是0,为什么我代码中写的是 k == i.length - 3 会输出后三个good 呢,k的默认值可都是0,所以原因就是,这个i的长度会变化,长度变化的原因其实就是这是两个int[] i 数组,第一个数组长度是2 第二个长度是3

    //如果我把代码修改为
     k == i.length - 2
    
    //则输出结果就为 
    
    0
    good0
    good0
    0
    0
    
    //原因在于 当遇到第一个数组时,长度是2,所以会执行语句,当遇到第二个一维数组时,因为长度是3,所以
    //i.length - 1 为1,所以不等于k(默认为0)
    

      综上所述,意思就是说,第二个foreach其实是连续遍历其中的所有一维数组。

  5. 还有在二维数组中,直接使用arr5.length 返回的是二维数组中一维数组个数,arr5[0].length 返回的是其中这个一维数组的长度
时间: 2024-10-06 00:31:09

Java数组定义学习的一些随笔的相关文章

java数组定义及初始化+print打印问题

一般写SyStem.out.pirntln(xxxxx);这样是默认换行的等于在打印之后默认加上了:/n/r,若想在同一行输出,则写:system.out.print(xxx); 定义:int a[]; //声明未初始化a = new int [10]; // 定义占用空间大小(10个int)int a[] = new int [10]; //声明并定义大小(即分配了指定大小的空间)int a[] = {1,2,3}; // 声明并初始化,占用空间大小是3个int.初始化: 一维数组 1) in

java数组的学习

一维数组的创建数组名 = new 数据元素类型[ 元素个数 ] 数组的内存模型数组是存储多个相同类型变量的对象.数组的所有元素保存在堆内存中.•创建一个数组就是在堆中创建一个数组对象.•数组创建后立即拥有默认值.•索引从0开始.•连续分配 数组的初始化在创建数组的同时就为数组元素分配空间并赋值int a[ ] = {1,2,3,4,5} ;数组类型 数组名[ ] = {元素1,元素2,…}int a[ ] = new int[]{1,2,3,4,5} ;数组类型 数组名[ ] = new 数据类

java 数组使用和定义

java数组定义及使用 3.1数组 数组是一组相关数据的集合,数组按照使用可以分为一维数组.二维数组.多维数组 有点: 不使用数组定义100个整形变量:int1,int2,int3;;;;;; 使用数组定义 int i[100] 数组定义:int i[100],只是一个伪代码,只能表示含义的. 3.2一维数组 可以存放上千万个数据,并且这些数据的类型是完全是相同的. 要使用java的数组,必须经过两个步骤:(1)声明数组,(2)分配内容给该数组,这两个步骤的语法如下: 声明形式一: ◇声明一维数

Java 数组声明的几种方式

Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,?}; 代码样例: public class Example1 { public static void main(String []args){ //数组定义的几种方法 // 1. 类型名称[] 变量名=new 类型名称[length]; int []a=new int[4]; a[0]=1; a[

【java开发】数组基本学习

一维数组 定义:具有相同数据类型的一组数据. 声明:int []a=new int[3];    释义:该数组的数据类型为int型,该数组长度为3,有3个元素 可采用如下方式为元素赋值:a[0]=1;a[1]=2;a[2]=3; 总结:元素的长度为3,但是数组的下标从0开始,但是最大值由此可看出为2,即长度比下标大1,java中用length表示长度,即a.length=3; 还有一种常见的数组声明方式:int []a={1,2,3};效用和上面等同 为了验证上述数组基本属性,可写一个简单测试:

JAVA数组的定义及用法

数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; 当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量. 另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统

【Java学习笔记之五】java数组详解

数组 概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; 示例:int[] arr = new int[5]; 格式2: 元素类型[] 数组名 = new 元素类型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7}; 如果需要存储大量的数据,例如如果需要读取100个数,

黑马程序员——JAVA数组学习总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- www.itheima.com 学习数组,学会如何声明,如何遍历,如何获取最值,还有交换,排序方法就差不多了,因为后期都是使用集合的更多. 一维数组1)   int[] a;   //声明,没有初始化 2)   int[] a=new int[5];   //初始化为默认值,int型为0 3)   int[] a={1,2,3,4,5};   //初始化为给定值 4)   int[] a=ne

java数组学习

1. java数组的静态特性:          java是静态语言,java中数组的长度是固定的.还有,数组元素的类型也是在定义时指定了的. 2. java数组里的关键词:          数组变量 : 引用变量 , 不过这个引用的类型是数组类型.数组类型很奇特,不需要程序员来设计类的属性和方法,只要在已知的引用类型(类,接口,还有数组)后加一个[], JVM就自动生成了这样的新类型.         作为一个变量,它是存在于栈空间中的.不过由于其是一个引用变量,其所指向的内容(保存的值)是