兰州网站seo收费标准网络开发工程师工资
兰州网站seo收费标准,网络开发工程师工资,深圳福田最大网站公司,百度网站建设费用文章目录 一、创建数组的四种方式二、详解三、数组存储的弊端 一、创建数组的四种方式
以int数据类型为例
Test
public void testNewArray() {//创建数组//法一int[] arr1 new int[]{1,2,3,4,5};System.out.println(arr1.length arr1[2]); //5 3//Arr… 文章目录 一、创建数组的四种方式二、详解三、数组存储的弊端 一、创建数组的四种方式
以int数据类型为例
Test
public void testNewArray() {//创建数组//法一int[] arr1 new int[]{1,2,3,4,5};System.out.println(arr1.length arr1[2]); //5 3//Arrays.toString(Object[]) 将数组的元素生成字符串数组的各个元素使用方括号括着 [ ]System.out.println(Arrays.toString(arr1)); //[1, 2, 3, 4, 5]//法二 声明、分配空间并赋值int[] arr2 {1,2,3,4};System.out.println(arr2.length arr2[2]); //4 3//法三 声明数组时指定元素个数然后赋值。此时所有的元素值均为0int[] arr3 new int[4];System.out.println(arr2.length arr2[3]); //4 0//法四 声明数组名、开辟空间、赋值int[] arr4;arr4 new int[]{0,1,2,3};System.out.println(arr3.length arr3[2]); //4 2//创建多维数组int[][] doubleArr1 {{1,2,3},{4,5,6},{7,8,9}};int m 3, n 4, q 5;int[][] doubleArr2 new int[m][n]; //其中n可以省略int[][][] tArr new int[m][n][q]; //其中n、q可以省略
}注意
new 数据类型[]{}其中花括号可以省去但要在[ ]中填写数组的个数创建多维数组时 new后面第一个方括号中的元素数量不能省略
二、详解
1、一维数组的声明方式
type[] arrayName; 或 type arrayName[];
推荐使用第一种格式因为第一种格式具有更好的可读性表示type[]是一种引用类型数组而不是type类型。建议不要使用第二种方式
int[] intArr;
注Java语言中声明数组时不能指定其长度数组中元素的个数这是因为数组是一种引用类型的变量因此使用它定义一个变量时仅仅表示定义了一个引用变量也就是定一个了一个指针这个引用变量还未指向任何有效的内存所以定义数组时不能指定数组的长度。而且由于定义数组仅仅只是定一个引用变量并未指向任何有效的内存空间所以还没有内存空间来存储数组元素因此这个数组也不能使用只有在数组进行初始化后才可以使用。
2、一维数组的创建
Java中使用关键字new创建数组对象格式为数组名 new 数组元素的类型 [数组元素的个数]
// 创建数组如果在创建的同时不初始化数组则必须指定其大小
intArr new int[5];
// 创建数组时不指定数组大小则必须在创建的同时初始化数组
intArray1 new int[]{0,1,2};一旦使用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
详情见https://blog.csdn.net/qq_44700578/article/details/136323990
三、数组存储的弊端
一旦初始化其长度就不可修改长度不够用、开辟很大的长度会导致空间浪费数组中提供的方法非常有限。添加、删除、插入等操作 效率很低【为了保证元素的内存地址连续添加或删除元素时涉及到前移或者后移】扩容麻烦只能新建一个更大的数组将元素一个一个移进去效率低获取数组中实际元素的个数的需求数组没有现成的属性或方法可用数组存储数据的特点有序、可重复。对于无序、不可重复的需求不能满足
为解决以上问题、灵活运用提出Java容器的概念
参考https://blog.csdn.net/u014199097/article/details/50551731
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88313.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!