当前位置:首页 > 编程问答 > java创建数组方法

java怎么创建数组?java中如何创建对象数组?

提问时间:2020年05月09日 11:55:31问题被 166 网友关注
共1个精选答案
钱志泽
推荐于:2020-05-09
最佳回答
public static void main(String[] args) {
//创建数组的第一种方法
int[] arr=new int[6];
int intValue=arr[5];
//System.out.println(intValue);
//创建数组的第二种方法
int[] x={1,2,3,4};
//System.out.println(x[1]);

//创建数组的第三种方法。
int[] y= new int[]{1,2,3,4,5};
int m=0;
boolean length = isLength(m,y);
if(length){
System.out.println(y[m]);
}else{
System.err.println("数组标越界");
}	

}
//判断数组下标是否越界
public static boolean isLength(int m,int arr[]){
boolean flag=false;
int length = arr.length;
if(m<length)
flag=true;
return flag;
}

Java创建数组的几种方式

1、一维数组的声明方式:

type[] arrayName; 或 type arrayName[];
附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不是type类型。建议不要使用第二种方式
下面是典型的声明数组的方式:

// 声明整型数组
 int[] intArray0 ;
 int intArray1 [];
 // 声明浮点型数组
 float floatArray0 [];
 float[] floatArray1 ;
 // 声明布尔型数组
 boolean boolArray0 [];
 boolean[] boolArray1 ;
 // 声明字符型数组
  char charArray0 [];
 char[] charArray1 ;
 // 声明字符串数组
 String stringArray0[];
 String[] stringArray1;
 // 错误的声明数组的方式,声明数组的时候不能指定其大小
 // int [5] intErrorArray0;
  // int intErrorArray1[5];

注:Java语言中声明数组时不能指定其长度(数组中元素的个数),这是因为数组是一种引用类型的变量,,因此使用它定义一个变量时,仅仅表示 定义了一个引用变量(也就是定一个了一个指针),这个引用变量还未指向任何有效的内存,所以定义数组时不能指定数组的长度。而且由于定义数组仅仅只是定一 个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有在数组进行初始化后才可以使用。

以上相关的知识点可以从以下相关书籍中获取更详细内容:

Java软件结构与数据结构
  • 类型:Java大小:129 MB格式:PDF出版:清华大学出版社作者:John Lewis
立即下载

2、一维数组的创建

Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]

 // 创建数组,如果在创建的同时不初始化数组则必须指定其大小
intArray0 = new int[3];
// 错误的创建数组的方式,如果创建数组时不指定大小则必须初始化
// intArray1 = new int[];
// 创建数组时,不指定数组大小则必须在创建的同时初始化数组
  intArray1 = new int[]{0,1,2};

使用new创建数组对象但是分配数组时会自动为数组分配默认值,具体如下:

System.out.println( "intArray0[0]=" + intArray0 [0]);
floatArray0 = new float[3];
System. out.println("floatArray0[0]=" + floatArray0[0]);
boolArray0 = new boolean[3];
System. out.println("boolArray0[0]=" + boolArray0[0]);
charArray0 = new char[3];
System. out.println("charArray0[0]=" + charArray0[0]);
stringArray0 = new String[3];
System. out.println("stringArray0[0]=" + stringArray0[0]);

输出如下

 intArray0[0]=0
 floatArray0[0]=0.0
 boolArray0[0]=false
 charArray0[0]=
 stringArray0[0]=null

附: 一旦使用new关键字为数组分配了内存空间,每个内存空间存储的内容就是数组元素的值,也就是数组元素就有了初始值,即使这个内存空间存储的内容是空,这 个空也是一个值null。也就是说不可能只分配内容空间而不赋初始值,即使自己在创建数组对象(分配内容空间)时没有指定初始值,系统也会自动为其分配
附:诸如基础数据类型的包装类,其默认的初始化值均为null,因为基础数据类型的包装类创建的数组属于引用数组(对象数组),对象数组默认的初始化值都是null

3、一维数组的初始化

数组的初始化分为静态初始化、动态初始化和默认初始化:
静态初始化是数组在初始化时由程序员显式指定每个数组元素的初始值而数组长度由系统决定。
动态初始化是数组在初始化时只指定数组长度,由系统为数组元素分配初始值。

     a、数组静态初始化的语法格式:
     arrayName = new type[]{element1,element2,element3...}或者使用简化的语法格式:arrayName = {element1,element2,element3...}
     b、数组动态初始化的语法格式:
     arrayName = new type[length];

附:静态初始化时不能指定元素个数,而动态初始化时则必须指定元素个数。静态初始化时数组能够知道元素的个数所以不需要指定,而动态初始化时数组元素个数未知因此必须指定。

// 静态初始化
 int intArray2 [] = new int[]{20,21,22};
  // 静态初始化简化方式
 int intArray3 [] = {30,31,32};
  // 动态初始化
 int[] intArray4 = new int[3];          
 // 错误写法:静态初始化不能指定元素个数
 // int intErrorArray5[] = new int[3]{50,51,52};
 // 错误写法:动态初始化必须指定元素个数
 // int intErrorArray6[] = new int[];

注:一维数组这一块记住两点,数组声明的时候是不能指定大小的,也就是说等号左边的中括号中不能包含数字。另外一旦使用new关键字那么肯定在内存中为数组分配了空间,则必然数组有默认值。数组是对象数据类型
注:不要静态初始化和动态初始化同时使用,也就是说不要再进行数组初始化时,既指定数组长度,也为每个数组元素分配初始值。
4、数组进行动态初始化时系统分配初始值的规则

     数组元素类型是基本类型中的整数类型(byte、short、int、long),则数组元素的值是0
     数组元素类型是基本类型中的浮点类型(float、double),则数组元素的值是0.0
     数组元素类型是基本类型中的字符类型(char),则数组元素的值是'\u0000'
     数组元素类型是基本类型中的布尔类型(boolean),则数组元素的值是false
     数组元素类型是基本类型中的引用类型(类、接口、数组),则数组元素的值是null

附:这部分源代码:

package javabase;

public class CreateArray {
       public static void main(String args[]){
             /**************数组的声明*******************/
             // 声明整型数组
             int[] intArray0 ;
             int intArray1 [];
             // 声明浮点型数组
             float floatArray0 [];
             float[] floatArray1 ;
             // 声明布尔型数组
             boolean boolArray0 [];
             boolean[] boolArray1 ;
             // 声明字符型数组
             char charArray0 [];
             char[] charArray1 ;
             // 声明字符串数组
            String stringArray0[];
            String[] stringArray1;
             // 错误的声明数组的方式,声明数组的时候不能指定其大小
             // int [5] intErrorArray0;
             // int intErrorArray1[5];
            
             /*********************数组的创建***********************/
             // 创建数组,如果在创建的同时不初始化数组则必须指定其大小
             intArray0 = new int[3];
             // 错误的创建数组的方式,如果创建数组时不指定大小则必须初始化
             // intArray1 = new int[];
             // 创建数组时,不指定数组大小则必须在创建的同时初始化数组
             intArray1 = new int[]{0,1,2};
            System. out.println("intArray0[0]=" + intArray0[0]);
             floatArray0 = new float[3];
            System. out.println("floatArray0[0]=" + floatArray0[0]);
             boolArray0 = new boolean[3];
            System. out.println("boolArray0[0]=" + boolArray0[0]);
             charArray0 = new char[3];
            System. out.println("charArray0[0]=" + charArray0[0]);
             stringArray0 = new String[3];
            System. out.println("stringArray0[0]=" + stringArray0[0]);
            
             /**********************数组的初始化*************************/
             // 静态初始化
             int intArray2 [] = new int[]{20,21,22};
             // 静态初始化简化方式
             int intArray3 [] = {30,31,32};
             // 动态初始化
             int[] intArray4 = new int[3];
            
             // 错误写法:静态初始化不能指定元素个数
             // int intErrorArray5[] = new int[3]{50,51,52};
             // 错误写法:动态初始化必须指定元素个数
             // int intErrorArray6[] = new int[];
            
            System. out.println("intArray2[0]=" +intArray2 [0]);
            System. out.println("intArray3[0]=" +intArray3 [0]);
            System. out.println("intArray4[0]=" +intArray4 [0]);
      }
}

 

参考资料

2019校招面java试题库(含答案解析)

2019校招面java试题库(含答案解析)

HTML5+CSS3+JavaScript从入门到精通

HTML5+CSS3+JavaScript从入门到精通

大话JAVA性能优化

大话JAVA性能优化

Java攻略 Java常见问题的简单解法

Java攻略 Java常见问题的简单解法

实战Java高并发程序设计

实战Java高并发程序设计

我来回答
更多答案
网友NO.734386

08-27

javascript过滤数组重复元素的实现方法, javascript过滤数组重复元素的实现方法 以下是在网上找的资料,直接在项目中可以使用,大家可以参考下: 实现代码: function filterArray(receiveArray){var arrResult = new Array(); //定义一个返回结果数组.for (var i=0; ireceiveArray.length; ++i) { if(check(arrResult,receiveArray[i]) == -1) {//在这里做i元素与所有判断相同与否arrResult.push(receiveArray[i]); // 添加该元素到新数组。如果if内判断为false(即已添加过),//则不添加。}}return arrResult;}function check(receiveArray,checkItem){var index = -1; // 函数返回值用于布尔判断for(var i=0; ireceiveArray.length; ++i){if(receiveArray[i]==checkItem){index = i;break;}}return index;} 感谢阅读,希望能帮助到大家,谢谢大家对本站的……

网友NO.884936

08-28

java数组复制的四种方法效率对比, 有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容。 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? A.for循环逐一复制 B.System.arraycopy C.System.copyof D.使用clone方法 效率:System.arraycopycloneArrays.copyOffor循环 1、System.arraycopy的用法: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 参数: src - 源数组。 srcPos - 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据中的起始位置。 length - 要复制的数组元素的数量 应用实例: public class Main{ public static void main(String[] args) { int……

网友NO.563481

08-28

java实现字符串转String数组的方法示例, 本文实例讲述了java实现字符串转String数组的方法。分享给大家供大家参考,具体如下: package Tsets;import java.util.Arrays;import java.util.List;public class String2StringList { public static ListString stringToList(String str){ return Arrays.asList(str.split(",")); } public static void main(String[] args) throws Exception { String str = "11111,21212,234234,23423424,234234"; ListString array = stringToList(str); for(String ss:array){ System.out.println(ss); } }} 运行结果: 更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》 希望本文所述……

网友NO.171551

06-27

java集合与数组的相同点和不同点, 数组: 数组可以用来保存多个基本数据类型的数据,也可以用来保存多个对象。 数组的长度是不可改变的,一旦初始化数组时就指定了数组的长度(无论是静态初始化还是动态初始化)。 数组无法保存具有映射关系的数据。 集合: 集合是只用于存储数量不等的对象。 集合的长度是可变的。 集合可以保存具有映射关系的数据。 相同点: 数组和集合类同是容器。 不同点: 数组的长度是固定的,集合的长度是可变的。 数组只能存储同类型的对象,集合可以存储不同类型的对象。 集合只能存储对象不能存储基本类型 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

版权投诉 / 书籍推广 / 赞助:QQ:520161757