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

JavaOO03

时间:2019-09-29 19:50:45      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:二维   常用   value   word   描述   排列组合   mic   构造   索引   

数组的定义:
  数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
数组的基本特点:
1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
2. 其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型
3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
4. 数组的元素在堆内存中被分配空间,并且是连续分配的
5. 使用new 关键字对数组进行 内存的分配。每个元素都会被jvm 赋予默认值。默认规则:整数:0 浮点数:0.0 字符:\u0000 布尔:false 引用数据类型:null。
6. 数组的元素都是有序号的,序号从0开始,0序的。称作数组的下标、索引、角标
数组的声明:
1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
2. 声明一个数组的时候并没有数组真正被创建。
3. 构造一个数组,必须指定长度。
数组格式:
元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];   //  int [] arr = new int [3];
[]:代表这是数组类型。
数组名:一个合法的标识符,命名规范 和 局部变量 规范一致。
new:是java 的关键字。用来向JVM申请内存的。
元素类型[元素个数] :决定了向JVM申请的内存空间的大小。 
             大小:元素类型字节数 * 元素个数
元素的个数:只要是一个合法的java 表达式就可以。 返回一个int 类型的值即可


example

技术图片  

技术图片


数组的常见问题:
技术图片
数组的优缺点:
优点:
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
数组的遍历:for循环   for-each循环
技术图片
技术图片
基于数组的拷贝操作:拷贝、删除、扩容
  System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。
技术图片
技术图片

技术图片 ArrayCopy Code

技术图片
java.util.Arrays类
JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。
打印数组  Arrays.toString(arr)
技术图片

技术图片
数组元素的排序  Arrays.toString(arr)
技术图片
技术图片
二分法查找  Arrays.binarySearch(arr, key)
技术图片
技术图片

数组填充
技术图片
技术图片
多维数组
  多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。
数组的排序:

技术图片 SortTest Code

数组的查找:

技术图片 ArithmeticTest Code

JavaOO03

标签:二维   常用   value   word   描述   排列组合   mic   构造   索引   

原文地址:https://www.cnblogs.com/rookie97/p/11609513.html

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