JAVA学习笔记之数组
2017-10-21 01:22
267 查看
数组的概念:
在java编程思想中,对数组的描述是这样的:数组只是相同类型的、用一个标识符名称封装到一起的一个对象序列或者基本类型数据序列。也就是说,数组中的元素既可以使java中的基本数据类型,也可以是对象。//定义数组的两种方式 int [] arr;//java的通常写法 int arr[];//C、C++的书写习惯
这个时候,我们已经定义了一个数组,但是这只是定义了一个对数组对象的引用,还没有给数组对象分配空间。要分配空间,需要对数组进行初始化。
Object[] arr1 =new Object[arrSize];
上面的语句做了三件事情,首先定义了一个数组引用变量arr1,然后使用Object[arrSize]创建了一个Object类型的数组,并把新创建的数组的引用赋值给了引用变量arr1。
此外,还有一种方法可以创建数组,如下所示:
Object[] arr2={value1,value2,value3……valuen};
所有的数组都有一个固有成员,即length属性,通过length属性,可以获知数组内包涵了多少个元素,但是不能够对数组大小进行修改(这也是数组与集合的差别之一)。在Java中,数组的计数也是从0开始,所以数组的最大下标数为length-1。如果在访问数组的时候,超出下标界限,则会抛出ArrayIndexOutOfBoundsException。
在Java中,数组与其他的容器之间的区别主要体现在三个方面:效率,类型和保存基本类型的能力。在Java中,数组的的存储和随机访问对象引用序列效率是最高的。相比之下,就算是集合中效率较高的ArrayList的效率也比不上数组。但是,高效率也带来了一些代价,数组的大小一旦被创建就被固定了,并且在其生命周期不可改变。
数组的另一个好处是可以直接放入基本类型,而容器则不能,容器看似能够持有基本类型,是因为自动包装机制的出现。
遍历数组
遍历数组可以用普通for循环或者forech进行遍历。public class ArrayTest1 { public static void main(String[] args) { int[] arr={10,23,12,15,16,17}; //使用普通for循环遍历数组 for(int i=0;i<arr.length;i++){ System.out.println(+arr[i]); } //使用增强for循环遍历数组 for (int i : arr) { System.out.println(i); } } }
数组作为函数的参数
public void ArrayTest2(int[] arr){ for(int i=0;i<arr.length;i++){ System.out.println(+arr[i]); } }
数组作为函数的返回值
public static int[] ArrayTest2(int[] arr) { int[] arr1 = new int[list.length]; for (int i = 0, j = arr1.length - 1; i < arr.length; i++, j--){ arr1[j] = arr[i]; } return arr1; }
多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组String str[][] = new String[4][5];
多维数组的初始化,直接分配空间:
Object arr = new Object[arrlenght1][arrlenght2];
Arrays工具类
java.util类库中的Arrays类,提供了一套用于数组的static实用方法,其中有6个基本方法。方法 | 方法说明 |
---|---|
sort() | 根据其元素的自然顺序进行升序排列 |
fill() | 将指定的值填充到数组中的各个位置 |
binarySearch() | 用于在已经排序的数组中查找元素 |
equals() | 用于比较两个数组是否相等 |
toString() | 产生数组的String表示 |
hashCode() | 产生数组的hashcode码 |
相关文章推荐
- java学习笔记-数组,对象的拷贝
- JAVA 学习笔记 (数组)
- JAVA学习笔记——数组
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- Java学习笔记003——继承、抽象类、类相等测试、泛型数组列表、可变参数方法
- J2SE学习笔记3 — Java基本语法(9)数组和枚举
- Java 数组 容器 学习笔记
- Java学习笔记——数组
- 黑马程序员------java学习笔记之数组基础
- java数组学习笔记
- Java菜鸟学习笔记--数组篇(一):数组简介&foreach循环
- java学习笔记04--数组
- java学习笔记04--数组
- Java学习笔记---5.Java数组和方法
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- 【Java学习笔记】数组的相关事项
- JNI学习笔记5——本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- Java学习笔记2 - 数组的基本操作
- Java学习笔记之数组复习
- Java基础学习笔记(二)数组,包装类