您现在的位置:首页 >> 基础 >> Java编程 >> 内容

JAVA 数组小结--Java学习网

时间:2016-8-29 8:00:27

  核心提示:数组对每门编程语言都是重要的数据结构之一,java语言提供的数组是用来储存固定大小的同类型元素的。  当你需要保存一组数据类型相同的变量或者对象时,我们不可能给每个变量都定义一个变量名,这样的操作会使...

  数组对每门编程语言都是重要的数据结构之一,java语言提供的数组是用来储存固定大小的同类型元素的。

  当你需要保存一组数据类型相同的变量或者对象时,我们不可能给每个变量都定义一个变量名,这样的操作会使代码臃肿、工作量大且无意义。这时我们就需要数组来保存这些数据。数组根据需要的不同分为一维数,二维数组和多维数组。下面我们来看下数组的声明、创建和初始化。

  一、数组的声明

  要在程序中使用数组,就需要先声明数组,下面是声明数组变量的语法: 

  一位数组的声明方法: 

  type[] 数组名;(首选方法)

  type  数组名[]; (效果一样,但不推荐)

  数组在声明时不能指定器长度(数组中元素的个数) 

  二、数组的创建 

  Java中使用new关键字来创建数组的,语法如下: 

   方式1(推荐,更能表现现数组的类型)

  type[]  数组名 = new type[数组中元素个数]; 

   eg:

    int[]  a = new  int[3];

  数组名,也即应用a,指向数组元素的首地址。

   方式2(定义时直接初始化)

  type[] 变量名  =  new type[]{逗号分隔的数组元素} 

  其中红色部分可以省掉,所以又分两种:

  1、int[]  num=new int[]{1,2,2,3,3};

  2、int[]  num1= {1,3,6,87,4};

  其中 int[]  num=new int[]{1,2,2,3,3};第二个方括号不能加数组长度,因为数组个数是由后面花括号决定的。

  Java中的每个数组都有length属性,表示数组的长度。

  length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

  

  二维数组的定义方法:

 1 int[][] table = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 5, 6, 3 } };
 2 
 3         int[][] table1 = null;
 4         table1 = new int[3][3];
 5 
 6         int[][] table2 = new int[3][3];
 7         table2[0][0] = 11;
 8         table2[0][1] = 121;
 9         table2[0][2] = 11;
10         table2[1][0] = 11;
11         table2[1][1] = 121;
12         table2[1][2] = 11;
13         table2[2][0] = 11;
14         table2[2][1] = 121;
15         table2[2][2] = 11;
16         System.out.println();

   二维数组的遍历

1 for (int row = 0; row < table.length; row++) {
2             for (int column = 0; column < table[row].length; column++) {
3                 System.out.print(table[row][column] + "\t");
4             }
5             System.out.println();
6 }

  三、数组的初始化

 

  1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
  2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
  3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。

 

  动态实例:

 1 public class Arrays
 2 {  
 3      public static void main(String args[]) {  
 4          int a[] ;  
 5          a = new int[3] ;  
 6          a[0] = 0 ;  
 7          a[1] = 1 ;  
 8          a[2] = 2 ;  
 9          String string[] ;  
10          string= new String[3] ;  
11          string[0] = "张三";  
12          string[1] = "李四" ;  
13          string[2] =  "小明";  
14      }  
15 }  

   静态实例:

1 public class Arrays     
2 {     
3      public static void main(String args[]) {     
4          int a[] = {0,1,2} ;     
5          String[]  string = {"张三","李四","小敏"} ;     
6      }     
7 }   

    默认实例:

1 public class Arrays     
2 {     
3      public static void main(String args[]) {     
4          int[]  a  = new int [5] ;     
5          System.out.println("" + a[3]) ;     
6      }     
7 }   

    处理数组:

  数组的元素和数组大小是确定的,并且数组的元素有多个,所以当处理数组时,我们通常使用基本for循环和增强for循环 

  示例:

  该实例完整地展示了如何创建、初始化和操纵数组:

 Array1.java

   增强for循环遍历数组

    JDK 1.5 引进了一种新的循环类型,它能在不使用下标的情况下遍历数组。

   该实例用来显示数组myList中的所有元素:

 1 public class Array {
 2 
 3    public static void main(String[] args) {
 4       int[] List = {1,9,2,9,3,4,3,5};
 5 
 6       // 打印所有数组元素
 7       for (int a:List) {
 8          System.out.println(a);
 9       }
10    }
11 }

 

   数组的复制

   1、使用for循环复制

 Array2.java

    2、copyOf方法复制数组

 Array3.java

   3、将指定数组的指定范围复制到一个新数组(copyOfRange)

1 public class Text {
2     public static void main(String[] args) {
3         int[] a = { 2, 4, 2, 77, 22, 777, 34 };
4         int[] b = Arrays.copyOfRange(a, 0, 3);
5         for (int n : b) {
6             System.out.print(n + " ");
7         }
8     }
9 }

 

  数组排序

 Array4.java

   使用sort方法排序

 1 public class Text {
 2     public static void main(String[] args) {
 3         int[] a = { 2, 4, 2, 77, 22, 777, 34 };
 4         Arrays.sort(a);
 5         for(int b:a){
 6             System.out.print(b+" ");
 7         }
 8     }
 9     
10 }

 

   产生一个不重复的随机数组

 Array5.java

 

 

  数组的比较

   如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。

 1 public class Text {
 2     public static void main(String[] args) {
 3         int[] a = { 2, 4, 2, 77, 22, 777, 34 };
 4         int[] b = { 2, 4, 2, 77, 22, 777, 34 };
 5         int[] c = { 4, 2, 22, 77, 2, 777, 34 };
 6         
 7         boolean flag = Arrays.equals(a, b);
 8         System.out.println(flag);
 9         
10         boolean flag1=Arrays.equals(a, c);
11         System.out.println(flag1);
12     }
13 }

  以上实例编译运行结果如下:

true
false

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号