x125521853 发表于 2013-2-5 01:23:27

第五章 数组

一:数组
     数组是多个相同类型信息的集合,通过数组可以统一管理这些数据。
     数组是一组相同类型的变量,可以通过公共的名称类引用,数组可以定义为任何类型,并且可以是一维或多维的,数组中的元素是可以通过它的下标来访问的。
 
二:一维数组
    所谓一维数组,就是一组相同类型数值的集合。
    创建一个数组之前需要声明数组,一维数组声明如下:
    数组类型  数组名[];  如:int num[];
    数组类型[] 数组;      如:int[] num;
    数组类型是Java语言中的任何一种基本数据类型或引用类型。
    数组名是任何合法的Java标识符。
 
    Java语言使用new运算符创建一个数组并为数组分配其所需要的内存空间。
    new 数据类型[数组大小]
    new关键字是分配内存空间。
    声明方式一:
         int[] month; //声明数组
         month = new int; //分配12个大小整形变量的内存空间
    声明方式二:
         int[] month = new int;
    new所分配的数组的元素自动初始化为0。
    所有的数组的下表都是以0开始的。
    //文件名:ArrayDemo.java   classArrayDemo{public static void main(String[] args) {//定义变量sum,存储数组中的所有元素的和float sum = 0;int a[];a = new int;//创建一个数组a//给数组a里的元素赋值a = 45;a = 19;a = 25;a = 34;a = 23;a = 35;a = 60;a = 27;a = 16;a = 32;//循环遍历数组中元素,把各个元素的值相加for(int i = 0; i<=9; i++){sum = sum =a;}System.out.println("平均年龄为:"+sum/10);}} 
  //文件名:ArrayDemo2.java 
public class ArrayDemo2 {    public static void main(String[] args)    {int[] monthDays = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int sumDays = 0;//循环数组中的元素,将它们打印出来for(int i = 0; i < monthDays.length; i++){System.out.println((i + 1) + "月的天数为:" + monthDays);sumDays += monthDays;}System.out.println("总天数为:" + sumDays);}    } 
三:二维数组(多维数组)
    int[ ][ ] person; //方式一, 建议使用这种方式声明,看起来更像数组
    int person[ ][ ]; //方式二
   
   初始化方式一
   规则的二维数组:
       int[ ][ ] person = new int; //方式一 
       int[ ][ ] person = new int[ ]; //方式二
    person = new int;
    person = new int;
    person = new int;
    person = new int;
    person = new int;
 
   初始化方式二
   int[ ][ ] person = new int[ ][ ]{{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15},{16,17,18,19}};
   //文件名:ArrayDemo3.java   
public class ArrayDemo3 {    public static void main(String[] args)    {    int[ ][ ] person = new int[][ ]{    {95,85,96,100},{97,88,57,98},{95,87,78,85},{98,95,68,58}};      int chinesesum = 0; //语文总分    int mathsum= 0;//数学总分    int englishsum = 0;//英文总分    int computersum = 0;//计算机总分      for(int i=0; i<person.length; i++)    {    for(int j=0; j<person.length; j++)    {    switch(j)    {    case 0:    chinesesum += person;    break;    case 1:    mathsum += person;    break;    case 2:    englishsum += person;    break;    case 3:    computersum += person;    break;    }    }    }      System.out.println("班级语文总分为:" + chinesesum + ",平均分为:" + (double)chinesesum/person.length);    System.out.println("班级语文总分为:" + mathsum + ",平均分为:" + (double)mathsum/person.length);    System.out.println("班级语文总分为:" + englishsum + ",平均分为:" + (double)englishsum/person.length);    System.out.println("班级语文总分为:" + computersum + ",平均分为:" + (double)computersum/person.length);    }} 
   不规则二维数组
   二维数组的第二维长度都可以不相同,如:
   int[ ][ ] person = new int[ ]; //方式三
   person = new int;
   person = new int;
   person = new int;
   person = new int;
   person = new int;
   //文件名:ArrayDemo4.java  
public class ArrayDemo4 {public static void main(String[] args){int[][] a = new int[];a = new int;a = new int;a = new int[]{89,45,34,53};a = new int[]{10};a = 23;a = 322;a = 85;a = 185;a = 285;for(int i = 0; i<a.length; i++){for(int j=0; j<a.length; j++){System.out.print(a + "\t");}System.out.print("\n");}}} 
四:数组的常用操作
   1. 获取数组的长度, length属性
   2. 数组的比较,Arrays类提供了一个equals来比较两个数组是否相等
   3. 数组的排序,Arrays类提供了数组排序的sort函数
   4. 把数组转换为字符串,Arrays类的toString方法函数可以将一个指定的数组转换为一个字符串
   //文件名:EqualsArray.java   
import java.util.Arrays;public class EqualsArray{public static void main (String[] args) {int[] a = new int;int[] b = new int;int[] c = new int;Arrays.fill(a,3);Arrays.fill(b,3);Arrays.fill(c,3);if(Arrays.equals(a,b)){System.out.println("数组a和b相等");}else{System.out.println("数组a和b不相等");}if(Arrays.equals(a,c)){System.out.println("数组a和c相等");}else{System.out.println("数组a和c不相等");}b = 30;if(Arrays.equals(a,b)){System.out.println("数组a和b相等");}else{System.out.println("数组a和b不相等");}}    } 
  //文件名:ArraySort.java  
import java.util.Arrays;public class ArraySort {public static void main (String[] args) {int[] a = {45,4,5,98,7,41};int[] b = {9,4,7,3,24,1};Arrays.sort(a); //整个排序Arrays.sort(b,2,5); //部分排序,从下标2开始,到下标5,但不包括5System.out.println("数组a排序后:");for(int i=0; i<a.length; i++){System.out.print(a + "\t");}System.out.println();System.out.println("数组b排序后:");for(int i=0; i<b.length; i++){System.out.print(b + "\t");}System.out.println();}} 
  //文件名:ToString.java  
import java.util.Arrays;public class ToString{public static void main (String[] args) {byte[] a = {1,2,3,4};short[] b = {30, 34};int[] c = {654,65,465};long[] d = {465L,79000L};char[] e = {'a','s','d','8','9','7'};boolean[] f = {true, false};float[] g = {};double[] h = new double;System.out.println(Arrays.toString(a));System.out.println(Arrays.toString(b));System.out.println(Arrays.toString(c));System.out.println(Arrays.toString(d));System.out.println(Arrays.toString(e));System.out.println(Arrays.toString(f));System.out.println(Arrays.toString(g));System.out.println(Arrays.toString(h));}   } 
页: [1]
查看完整版本: 第五章 数组