【Java】数组

数组

将多个数据合并成一个整体。就像变量的一组集合。

public class Main {
    public static void main(String[] args) {
        String fruit1 = "りんご";
        String fruit2 = "みかん";
        String fruit3 = "いちご";
        String fruit4 = "メロン";
        String fruit5 = "バナナ";

        System.out.println(fruit1);
        System.out.println(fruit2);
        System.out.println(fruit3);
        System.out.println(fruit4);
        System.out.println(fruit5);
    }
}

这段代码是为了展示水果的种类。这也是正确的,但是每次添加一种新的水果类型时,变量”fruit”的数字就会增加,那我究竟要创建多少个System.out.println~的代码呢?变量”fruit”上的数字越多,越容易出错。而且,这样做非常麻烦。

在类似的情况下,数组能够发挥作用。

讲解书写方式之前,先解释一下数组是什么样的东西,好吗?

我的数组形象

倉庫.jpg

这是一个仓库。

根据查看图片,可以看到仓库里有货架,货架上摆满了纸箱。

这个纸箱里装着一个苹果。
另一个纸箱里装着一个橙子。
然后又有另一个纸箱里……依此类推,每个纸箱都装着不同种类的水果。

这个纸箱被称为”要素”。
苹果、橙子等水果被称为”值”。

ダンボール.png

而这个纸箱(元素)整齐地排列在称为水果架的货架上。
这个货架上整齐地摆放着纸箱(元素),这就是数组的状态。

棚.png

这些整齐摆放的纸箱(物品)看起来很干净,但由于上面没有写字,不打开看一下就完全不知道里面装着什么。

因此,我們決定給每個紙箱(元素)編上編號進行管理。
這個編號被稱為索引(或者是指標)。
對於這個索引,有一點需要注意。
它必須從0開始。

以下是一种可能的中文表达方式:

[0] 苹果
[1] 橙子
[2] 草莓
·
·
·
这样就是。
所以,请不要忘记从[0]开始。

我需要苹果箱子(要素),所以拿来一个苹果箱子吧!

一提到,橘子就来了。

简化描述如下:
数组(货架)…以从0开始的索引号来管理存储的元素。
元素(纸箱)…存储着值。
值…元素内部的内容(如苹果、橘子等水果)。

数组的编写方式 de \

既然已经解释了数组的概念,接下来我将具体地介绍数组的写法。

1.配列変数の宣言
2.要素の作成と代入

配列需要经过两个步骤。首先是1. 声明数组变量。

1.声明数组变量

创建变量时的方法已经被改变。

整数 number;
字符串 name;

等等

变量名

创建了一个新的容器并进行了声明,以便将变量放入其中。
这是它的数组版本。
根据之前的解释。

(」`Д´)」< 快准备一个新的架子!

这是一个数组变量的声明。

要素の型[] 配列変数名

将此格式应用于水果计划。

String[] fruits

附近会准备一个新的架子
提示是…
类型名称和方括号之间不需要空格。
数组变量名可以使用任意名称,但要使用复数形式。

创建和赋值元素

刚刚通过数组变量声明准备好了一个新的货架来放置水果。
目前还没有放置任何东西。
只是有一个货架。
所以我们现在下达新的指令。

带来五个新的纸箱,然后把它们放在架子上!

这个讲座的方式

配列変数名 = new 型[要素数]

旁边,适应进去的话

fruits = new String[5]

這裡需要注意的是元素數量。

由于索引从0到4,所以你为什么不认为它是4呢?但事实并非如此。这是指元素的数量,所以是指箱子的数量。因为我们要为每个箱子分配从0开始的编号。

零 一 二 三 四

因此,要使总数为5,[ ] 中的数字就是5。

public class Main {
    public static void main(String[] args) {
        String[] fruits;
        fruits = new String[5];
    }
}

总结到这里就是这样的,还可以进一步缩短代码。

1.声明数组变量
2.创建和赋值元素

这是一种一行填写的方法。

型[] 配列変数名 = new 型[要素数]
public class Main {
    public static void main(String[] args) {
        String[] fruits = new String[5];
    }
}

更易于阅读了。

在数组中给元素赋值和调用元素的值。

我已经准备好新的书架。
我还准备好了新的纸箱。
好了,下面我们要开始把水果放进纸箱里了。

关于水果的摆放方法,我记得我们说过在纸箱上标有索引。
我们可以利用这个索引来将水果放入纸箱中。

public class Main {
    public static void main(String[] args) {
        String[] fruits = new String[5];
        fruits[0] = "りんご";
        System.out.println(fruits[0]);
    }
}

在第4行中 fruits[0] = “りんご”;的位置上,
( 」`Д´)」< 把苹果放进水果架上的第一个盒子里!
就像是发出了一个指令(给数组的元素赋予一个值)

在第5行的System.out.println(fruits[0]);处,
( 」`Д´)」< 去确认一下水果架上第一个箱子的内容!
也就是调用它的值。

りんご

这表示…

我现在理解了元素的插入和调用方式,所以再次尝试编写代码。

public class Main {
    public static void main(String[] args) {
        String[] fruits = new String[5];
        fruits[0] = "りんご";
        fruits[1] = "みかん";
        fruits[2] = "いちご";
        fruits[3] = "メロン";
        fruits[4] = "バナナ";

        System.out.println(fruits[0]);
        System.out.println(fruits[1]);
        System.out.println(fruits[2]);
        System.out.println(fruits[3]);
        System.out.println(fruits[4]);
    }
}

最后代码好长啊!数组完全没意义嘛!

只是写作方式改变了而已,变成了毫无意义的状态。
有什么办法呢…?

1. 要素の型[] 配列変数名 = new 要素の型[] {値1,値2,値3,・・・}
2. 要素の型[] 配列変数名 = {値1,値2,値3,・・・}

有两种方法!只需一种选择:在这个表达式中,可以一次性声明数组变量、创建元素、赋值和赋予值。……那之前的解释是什么呢……就变成了要素的值已经确定的情况下,最好使用这个表达式。

例如,…

int[5] number = new java.util.Random().nextInt(10);
随机生成一个长度为5的整数数组,其中数字的取值范围在0到9之间。

情况发生时,请在上述公式中的五个元素中随机填入0到9的数字。

    用要素的类型[]声明一个数组变量名,并赋予初始值为{值1, 值2, 值3, …}

如果是这样,我不知道要输入什么数字。
在这种情况下,无法使用上述的公式。

int[] numbers = new int[5]

数字数组:int[] numbers = new int[5]

只有按照以往的方式去创建。

回到话题… 这次我们使用2吧。

public class Main {
    public static void main(String[] args) {
        String[] fruits = {"りんご","みかん","いちご","メロン","バナナ"};

        System.out.println(fruits[0]);
        System.out.println(fruits[1]);
        System.out.println(fruits[2]);
        System.out.println(fruits[3]);
        System.out.println(fruits[4]);
    }
}

代码大大缩短了。

只剩下System.out.println 部分了
根据结果来看,使用for循环。
但是在使用for循环之前需要先解释length,所以先解释length再解释for循环。

确认数组的元素个数

嗯…在水果架上有多少个纸箱来着?也许有人想知道纸箱的数量。

在这种情况下,我认为你可以向实际管理仓库的人询问同样的问题,也可以向电脑提问有关要素数量的问题。

配列変数名.length
public class Main {
    public static void main(String[] args) {
        String[] fruits = {"りんご","みかん","いちご","メロン","バナナ"};
        int number = fruits.length;
        System.out.println("フルーツの棚にはダンボール" + number + "個あるよ!");
    }
}

在第四行中,int number = fruits.length; 语句中的fruits.length; 询问了元素的数量(箱子的数量),所以类型是int。
将元素的数量赋值给变量number。

在第5行中显示元素的数量。

フルーツの棚にはダンボール5個あるよ!

使用数组和for循环

使用循环重复利用所有元素。

因为已经解释了length的含义,所以使用for循环来简化System.out.println的代码。答案如下:

public class Main {
    public static void main(String[] args) {
        String[] fruits = {"りんご","みかん","いちご","メロン","バナナ"};
        for (int count = 0; count < fruits.length; count++) {
            System.out.println(fruits[count]);
        }
    }
}

第四行的 for 循环中的 count < fruits.length 部分, fruits.length 表示元素的数量,这里是5。 变量 count 初始值为0, 所以当 0 < 5 时,条件满足,会一直重复执行。

第五行的 fruits[count] 的部分,
由於變量 count 初始化值為 0,
所以呼叫 fruits[0],輸出的是「蘋果」。
由於迴圈設置為在 0 < 5 的範圍內循環處理, 所以會依次呼叫索引 [0] 至 [4],並輸出其值。

りんご
みかん
いちご
メロン
バナナ

顺便说一句,如果将第4行的 int count = 0 改为 int count = 3,那么 fruits[count] 就变成了 fruits[3],索引 [3] 到 [4] 将被调用并输出,所以显示结果如下:

メロン
バナナ

如果按照这段代码进行操作,即使有额外的项目,也只需在第3行进行添加,非常便捷的设计规范。

public class Main {
    public static void main(String[] args) {
        String[] fruits = {"りんご","みかん","いちご","メロン","バナナ","キウイ"};
        for (int count = 0; count < fruits.length; count++) {
            System.out.println(fruits[count]);
        }
    }
}

在第三行添加奇异果。

りんご
みかん
いちご
メロン
バナナ
キウイ

春ちゃん已经显示出来了。

用循环迭代处理数组中的元素称为 “遍历数组”。具体步骤如下:

for (int 変数名 = 0; 変数名 < 配列変数名.length; 変数名++)

如果只想要将数组中的所有元素输出,还可以使用扩展for循环的方法。

for (要素の型 変数 : 配列変数名)
public class Main {
    public static void main(String[] args) {
        String[] fruits = {"りんご","みかん","いちご","メロン","バナナ","キウイ"};
        for (String count : fruits) {
            System.out.println(count);
        }
    }
}

通过循环来进行汇总

你也可以利用这个循环来求元素的总和。

public class Main {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};
        int sum = 0;
        for (int count = 0; count < numbers.length; count++) {
            sum += numbers[count];
        }
        System.out.println(sum);
    }
}

第四行的 int sum = 0; 表示必须在取出变量值之前对其进行赋值和初始化。因此,我们将 int sum = 0; 改写为在变量 sum 中赋值为 0。

以下是对第6行的sum += numbers[count];进行数值化的过程:
0 += 10
也就是计算0 + 10,并将计算结果赋值给变量sum。
这个过程将重复进行,10 + 20… 20 + 30…,直到将所有元素相加的结果。

150

以下为中文的翻译:”となります”

顺便提一下,我们可以使用if语句来询问有多少个大于30的数?

public class Main {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};
        int conditions = 0;
        for (int count = 0; count < numbers.length; count++) {
            if (numbers[count] >= 30) {
                conditions++;
            }
        }
        System.out.println(conditions);
    }
}
3

使用与所添加的字符相对应的信息

当想要将整数随机显示时,可以使用以下代码:int 变量 = new java.util.Random().nextInt(3);
那么当想要将字符随机显示时,可以使用以下方法:String[] 字符数组 = {“A”, “B”, “C”};
int 随机索引 = new java.util.Random().nextInt(字符数组.length);
String 随机字符 = 字符数组[随机索引];

public class Main {
    public static void main(String[] args) {

        int[] word = new int[5];

        for (int number = 0; number < word.length; number++) {
            word[number] = new java.util.Random().nextInt(3);
        }

        for (int number = 0; number < word.length; number++) {
            switch (word[number]) {
                case 0:
                    System.out.println("あひる");
                    break;
                case 1:
                    System.out.println("さくら");
                    break;
                case 2:
                    System.out.println("どんぐり");
                    break;
            }
        }
    }
}

在中文中可以使用 switch 语句来实现这个方法。

在第三行中,创建了一个包含5个整数的数组word,以准备5个新的货架和新的纸箱。

在第4至第6行的for循环中,意思是将0到2之间随机选取的数字分别依次赋值给word[number]。

第7至18行的for循环的意思是,在switch语句中查找存储在word[number]中的数字,如果找到与之匹配的数字,则输出其中所述的字符。(例如,如果word[0],则输出case 0所指示的“あひる”)

どんぐり
あひる
さくら
さくら
どんぐり

* 所显示在控制台上的文字每次都会变化。

bannerAds