码迷,mamicode.com
首页 > 编程语言 > 详细

java编程基础--数组

时间:2020-06-26 13:02:33      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:静态   必须   效率比较   nts   开发   example   key   构造   ati   

数组的定义:

数组是指一组数据的集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。

数组的基本特点:
1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
2. 其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型
3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
4. 数组的元素在堆内存中被分配空间,并且是连续分配的
5. 使用new 关键字对数组进行 内存的分配。每个元素都会被jvm 赋予默认值。
6. 数组的元素都是有序号的,序号从0开始,0序的。称作数组的下标、索引、角标

数组的声明:
1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
2. 声明一个数组的时候并没有数组真正被创建。
3. 构造一个数组,必须指定长度。

数组格式:
元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];  // int [] arr = new int [3];
[]:代表这是数组类型。
数组名:一个合法的标识符,命名规范 和 局部变量 规范一致。
new:是java 的关键字。用来向JVM申请内存的。
元素类型[元素个数] :决定了向JVM申请的内存空间的大小。 
       大小 :元素类型字节数 * 元素个数
元素的个数:只要是一个合法的java 表达式就可以。 返回一个int 类型的值即可

 1 public class Example {
 2     public static void main(String[] args) {
 3       int[] arr =new int[4]; //定义可以储存4个整数的数组
 4         arr[0] = 1; //为第一个元素赋值
 5         arr[1] = 2; //为第二个元素赋值
 6         //下面的 代码是打印数组中每个元素的值
7 System.out.println("第一个元素的值为:" + arr[0]); 8 System.out.println("第二个元素的值为:" + arr[1]); 9 System.out.println("第三个元素的值为:" + arr[2]); 10 System.out.println("第四个元素的值为:" + arr[3]); 11 12 } 13 14 }

运行结果如图--

技术图片

 第三,四个元素没有赋值,数组会自动赋予一个默认值:

  byte,short,int,long--默认初始化值:0

  float,double--默认初始化值:0.0

  char--默认初始化值:一个空字符,即‘\u0000‘

  boolean--默认初始化值:false

  引用数据类型:null,表示变量不引用任何对象

 数组的常见问题:

技术图片

 

 

 数组的优缺点:
优点:
1:可以保存若干个数据。
2:随机访问的效率很高。根据下标访问元素效率高(元素连续分配空间)。
缺点:
1:数组的元素的类型必须一致。元素类型必须一致。
2:连续分配空间在堆中,如果数组的元素很多,对内存的要求更加的严格。
3:根据内容查找元素效率比较低,需要逐个比较个。
4:删除元素、插入元素效率比较低,需要移动大量的元素。
5:数组定长,不能自动扩容。
6:数组没有封装,数组对象只提供了一个数组长度的属性,但是没有提供方法用来操作元素。
java 提供了一整套的 针对不同需求的 对于容器的解决的方案。集合框架部分。不同的容器有不同的特点,满足不同的需求。数组的缺点都会被干掉

数组的初始化:静态初始化、动态初始化、默认初始化
静态初始化:int[] arr = { 123 };// 静态初始化基本类型数组;
动态初始化:int[] arr = new int[2];//动态初始化数组,先分配空间;
      arr[0]=1;//给数组元素赋值;
      arr[1]=2;//给数组元素赋值;
默认初始化:int arr[] = new int[2]; // 默认值:0,0
      boolean[] b = new boolean[2]; // 默认值:false,false
      String[] s = new String[2]; // 默认值:null, null

数组遍历

 1 public class Example {
 2     public static void main(String[] args) {
 3         int[] arr = {1, 2, 3, 4, 5}; //定义一个数组
 4 
 5         //for循环
 6         for (int i = 0; i <arr.length ; i++) {
 7             System.out.println(arr[i]);;
 8         }
 9     }
10 
11 }

技术图片

 

 

数组最值

 1 public class Example {
 2     public static void main(String[] args) {
 3         int[] arr = {1, 6, 3, 4, 9, 8}; //定义一个数组
 4         int max = getMax(arr); //调用获取元素最大值的方法
 5         System.out.println("最大值为 :" + max); //打印最大值
 6     }
 7     static int getMax(int[] arr){
 8         //定义变量max用于记住最大数,首先假设第一个元素为最大值
 9         int max =arr[0];
10         //for循环
11         for (int i = 0; i <arr.length ; i++) {
12             if (arr[i] > max) { //比较
13                 max = arr[i]; //赋值
14             }
15         }
16             return max; //返回最大值
17         }
18 
19 }

技术图片

 

 多维数组
  多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。

java编程基础--数组

标签:静态   必须   效率比较   nts   开发   example   key   构造   ati   

原文地址:https://www.cnblogs.com/wx60079/p/13194107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!