java中数组,怎么既定义其长度,有可以赋值,但赋值没有全部赋值,后面的自动补0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中数组,怎么既定义其长度,有可以赋值,但赋值没有全部赋值,后面的自动补0相关的知识,希望对你有一定的参考价值。

比如int array=new int[50]=2,4,6,1,8,9,3,5,然后后面的值自动补0;这个只是我想要的效果,但java中这个不行;应该怎么弄呢?前辈们!

java中,int数组默认值是0,你new一个int数组以后,只要对前几个赋初值即可。 参考技术A int不是对象,默认值就是0,你先声明一个数组,然后只把需要初始化的赋值,其他的缺省就是0,祝你好运
int[] array = new int[50];
for(int i=1;i<=5;i++)
array[i-1] = i;

for(int i=0;i<array.length;i++)
System.out.println(array[i]);
本回答被提问者采纳
参考技术B 你先把长度求出来,然后new int[n]//n 是求出来的长度 参考技术C 如果你不用List的话..自己写一个类似List的类不就可以了..也很简单嘛 参考技术D 用LIST

Java学习之路:Java中的数组

数组的概述和定义的格式

数组的作用:

  • 用来存储同种数据类型的多个值

数组的基本概念:

  • 数组是存储同一种数据类型多个元素的集合。就相当于一个容器。

注意:数组既可以存储基本数据类型,也可以存储引用数据类型。

数组的定义格式:

  • 数据类型[] 数组名 = new 数据类型[指定数组的长度]

数组的初始化

概念:

  就是为数组开辟连续的内存空间,并且为每个数的元素赋值

如何初始化:

  • 动态初始化:指定长度,有系统给出初始化值  int[] arr = new int[5]
  • 静态初始化:给出初始化的值
    • 格式:数据类型[] 数组名 = new 数据类型[数组长度]

如果打印一个数组的话,你会发现很好玩的事情

int[] arr = new int[5];
System.out.println(arr)
//结果:【I@一个十六进制的内存地址

[I@754e9654的解释:

  • 【代表是一个数组,有几个就代表是几维的
  •   I代表的是int类型
  • @一个固定的写法
  • 那一串的十六进制数字则是数组所在的内存地址

数组的赋值和取值

数组是通过下标、索引进行赋值和取值的

当我们使用动态初始化时,系统会默认的给出一个默认值:

  • 整数类型:bytes,short,int,long默认的初始化的数值为0
  • 浮点类型:float,double的默认初始化值都是0.0
  • 布尔类型:boolean默认的初始化值为false

Java中内存的分配

在Java中,我们将内存分为了5个部分:

  • 栈:存储局部变量的部分
  • 堆:存储new出来的对象的部分
  • 方法区:类中的方法,想要调用一个方法的前提就是方法要在方法区
  • 本地方法区:?
  • 寄存器:给CPU使用的

 我们去创建一个数组:

int[] arr = new int[5]

其实计算机的内部会把arr这个变量名放在栈区,new int[5]放在堆区,在堆区中开辟了5个连续的空间,默认的int为0

当我们将arr重新赋值给一个新的变量的时候,其实只是把他的内存地址又给了新的变量

 数组的静态初始化

 动态初始化: int[] arr = new int[5]

静态初始化:

格式:数据类型[] 数组名 = new 数据类型[]{元素......}

简化:数据类型[] 数组名 = {元素....}

 数组的遍历

 这要是在Python,分分钟,一个for,啥条件都不用

Java中:

  数组的最大索引:array.length-1

//java中for循环数组

int[] arr = new int[5];

for(int i=0;i<=arr.length-1;i++){
    System.out.println(arr[i]);
}

二维数组的概述和定义

 定义:

  • 本质上是以数组作为数组元素的数组,即“数组的数组”

二维数组的格式:

  • 数据类型[][] 数组名 = new 数据类型[m][n]
  • 数据类型 数组名[][] = new 数据类型[m][n]
  • 数据类型[] 数组名[] = new 数据类型[m][n]

数组的声明:

  int[][] arr = {{1,2},{3,4}}

 

补充:

  • 基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量会随之消失
  • 引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内的数组还在,可以继续通过地址继续访问
1.Java中的数组到时是传值还是传地址?
//1.即使传值,也是传地址,基本数据类型传递值,引用数据类型传递地址。
//2.Java中只有传地址,应为地址值也是值(官方说法)

 

以上是关于java中数组,怎么既定义其长度,有可以赋值,但赋值没有全部赋值,后面的自动补0的主要内容,如果未能解决你的问题,请参考以下文章

Java学习之路:Java中的数组

java 数组添加一个或多个元素

c++ 用vector 定义二维数组

二维数组怎么赋值

在c++编程中,怎么定义对象数组的指针?

java Vector 怎么用一个Vector来给一个一维数组赋值呢?