数组

来源:互联网 发布:磁力解析app源码 编辑:程序博客网 时间:2024/05/18 02:52

概念

同一种类型数据的集合。其实数组就是一个容器。
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的。如何解决这个问题,Java语言提供了数组(array)的数据结构,是一个容器可以存储相同数据类型的元素,可以将100个数存储到数组中。

数组创建:

方式一:type[] 变量名 = new type[元素个数]; ——如:int[] a = new int[10];

方式二:type 变量名[] = new type[元素个数]; ——如:int a[] = new int[10];

方式三:type[] a= new type[]{初始化值,逗号分隔} ——如:int[] a=new int[]{1,2,3}

声明方式

数组的声明由几种方式:
1,String []a = new String[length];再赋值
a[0]=?;…….
2,new完就直接初始化:
String []a = new String[]{?,?…};
3.你甚至不必new:
String []a = {?,?….}同样没问题。

public class ArrayDemo01{      public static void main(String args[]){          int score[] = null;    //声明数组          score = new int[3];    //为数组开辟空间      }  }

数组的初始化:

静态初始化:

int [][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };

动态初始化:

int a[][]=new int[3][4]; for(int i=0;i<a.length;i++){     for(int j=0;j<a[i].length;j++){        a[i][j]=sc.nextInt();    }}

Arrays的使用

遍历: toString() 将数组的元素以字符串的形式返回
排序: sort() 将数组按照升序排列
查找: binarySearch()在指定数组中查找指定元素,返回元素的索引,如果没有找到返回(-插入点-1) 注意:使用查找的功能的时候,数组一定要先排序。

int a[]=new int[]{10,20,30,40};System.out.println(Arrays.toString(a));Arrays.sort(a);System.out.println(Arrays.toString(a));System.out.println(Arrays.binarySearch(a,30));

最常见的问题:

  1. NullPointerException 空指针异常
    原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

  2. ArrayIndexOutOfBoundsException 索引值越界。
    原因:访问了不存在的索引值。

一数组角标越界异常:,注意:数组的角标从0开始。

public static void main(String[] args) {     int[] x = { 1, 2, 3 };     System.out.println(x[3]);     //java.lang.ArrayIndexOutOfBoundsException}

二 空指针异常:

public static void main(String[] args) {     int[] x = { 1, 2, 3 };     x = null;     System.out.println(x[1]);  // java.lang.NullPointerException}

总结:
总结:3种创建方式,静态初始化和动态初始化,Arrays的使用(遍历,排序,查找),数组越界和空指针错误。