使用数组存储信息

数组是一组类型相同的相关变量。可以作为变量存储的任何类型的信息都能够成为存储在数组中的项目。与单个变量相比,数组可记录更复杂的信息类型,但创建和使用数组同变量一样简单。

创建数组

  数组与变量的不同之处在于多了一对方括号:"["和"]"。使用new语句,或者将初始值放在大括号"{" 和 "}" 之间。

  String[] reindeerNames = {"aaa", "bbb"};

  int value[] = new int[250];

  注意:在创建数组时,JAVA在方括号的位置方面比较灵活,可以将方括号放在变量名后面,而不是放在变量类型的后面。如:String niceChild[];

  使用new语句创建数组时,必须指定元素的个数。而且数组中的每个元素都将赋给一个初始值,初始值取决于数组的类型。对于所有数值型数组,初始值为0,字符型数组的初始值为'',布尔型数组的初始值为false,字符串数组和所有其他对象数组的初始值为null。

  要存储到数组元素中的信息放在"{"和"}"之间,之间用逗号隔开。数组中元素的个数也就是用逗号隔开的元素数。

  数组元素是有编号的,第一个元素的编号是0。

使用数组

  在程序中使用数组就像使用变量一样,只是需要在靠近数组名的方括号内指定元素编号。你可以在允许使用变量的任何地方使用数组元素。

  数组的第1个元素的编号为0,而不是1。这意味着最大的元素编号比你想象的小1。

  length()是一个整型变量,包含数组能容纳的元素数。

  将字符串中的每个字符放在字符数组的一个元素中,可使用toCharArray()方法,它生成一个字符数组,该数组包含的元素数与字符串长度相同。

多维数组

  除了一维数组外,有些类型的信息需要使用多维数组来存储,如(x, y)坐标系的点,其中数组的一维用于存储x坐标,另一维用于存储y坐标。

  创建二维数组,必须在创建和使用数组时多加一对方括号。

  int valueArr[][] = new int[50][50];

  根据需要,数组可以有任意多维数。但别忘了,如果数组的维数很多,将占用大量的内存。

对数组排序

  在JAVA中对数组排序很空易,因为Arrays类提供了这种功能。Arrays类位于java.util中,它可以对任何类型的数组进行排序。

  使用Arrays类的sort()方法对数组进行排序后,其中的值按数字升序排列。字符和字符串将字母顺序排序。如:

    String names[] = {"Glimmer", "Marvel", "Rue", "Clove", "Thresh", "Foxface", "Cato",
      "Peeta", "Katniss"};
    System.out.println("The original order:");
    for (int i = 0; i < names.length; i++) {
       System.out.println(i + ": " +names[i]);
    }
    System.out.println();
    Arrays.sort(names);
    System.out.println("The new order:");
    for (int i = 0; i < names.length; i++) {
       System.out.println(i + ": " + names[i]);
    }
    System.out.println();

  如果使用字符串或基本类型(如整数和浮点数)变量时,通过Arrays类的方法只可按升序进行排序。如果要按其他顺序排列或希望排序效率比Arrays类高,可以自己编写代码来实现。

对字符串中的字符计数

  在英文中,最常出现的字母依次是E、R、S、T、L、N、C、D、M和O,这里要创建的JAVA程序用来统计字母在不同短语或表达中出现的频率,并使用数组来存放每个字母出现的字数。当程序运行时,它将显示每个字母在短语中出现的次数。如:

  

 1 public class Wheel {
 2     public static void main(String[] arguments) {
 3         String phrase[] = {
 4                 "A STITCH IN TIME SAVES NINE",
 5                 "DON'T EAT YELLOW SNOW",
 6                 "JUST DO IT",
 7                 "EVERY GOOD BOY DOES FINE",
 8                 "I WANT MY MTV",
 9                 "I LIKE IKE",
10                 "PLAY IT AGAIN, SAM",
11                 "FROSTY THE SNOWMAN",
12                 "ONE MORE FOR THE ROAD",
13                 "HOME FIELD ADVANTAGE",
14                 "VALENTIME'S DAY MASSACRE",
15                 "GROVER CLEVELAND OHIO",
16                 "SPAGHETTI WESTERN",
17                 "AQUA TEEN HUNGER FORCE",
18                 "IT'S A WONDERFUL LIFE"
19         };
20         
21         int[] letterCount = new int[26];
22         for (int count = 0; count < phrase.length; count++) {
23             String current = phrase[count];
24             char[] letters = current.toCharArray();
25             for (int charCount = 0; charCount < letters.length; charCount++) {
26                 char lett = letters[charCount];
27                 if ((lett >= 'A') & (lett <= 'Z')) {
28                     letterCount[lett - 'A']++;
29                 }
30             }
31         }
32         for (char count = 'A'; count <= 'Z'; count++) {
33             System.out.print(count + ":" + letterCount[count - 'A'] + " ");
34             if (count == 'M') {
35                 System.out.println();
36             }
37         }
38         System.out.println();
39         
40     }
41 }

   注意:

    与字符'A'到'Z'相关联的数值是ASCII字符集中使用的值。ASCII字符集是Unicode的一部分,后者是Java语言支持的完整字符集。Unicode字符集支持全世界的各种书面语言中使用的60000多个字符。ASCII只有256个字符

  问与答?

  字母的数值范围65('A')到90('Z')是基本Java语言的一部分吗?如果是,1~64留作什么用处?

    答:数值1~64对应于数字、标点符号和其他不可打印的字符(如回车、换行符和退格)。与每个可打印字符相关联的数值可以在Java程序中使用,还可以使用一些不可打印的字符。Java使用Unicode编号系统,其中前127个字符来自ASCII字符集,

原文地址:https://www.cnblogs.com/dulixiaoqiao/p/6414606.html