Java创建一个数组遍历
时间: 2023-09-02 13:09:51 浏览: 49
可以使用 for 循环来遍历 Java 数组,以下是一个遍历整数数组并输出数组元素的示例代码:
```java
int[] array = {1, 2, 3, 4, 5};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
```
在上面的代码中,我们定义了一个整数数组 `array`,然后使用 for 循环遍历整个数组。`array.length` 返回数组的长度,循环条件为 `i < array.length`,即循环变量 `i` 小于数组的长度。在每次循环中,我们使用 `array[i]` 访问数组的元素,并将其输出。
除了使用 for 循环,还可以使用增强型 for 循环(也称为 for-each 循环)来遍历数组,以下是一个遍历字符串数组并输出数组元素的示例代码:
```java
String[] names = {"Alice", "Bob", "Charlie", "Dave"};
for (String name : names) {
System.out.println(name);
}
```
在上面的代码中,我们定义了一个字符串数组 `names`,然后使用增强型 for 循环遍历整个数组。循环变量 `name` 依次指向数组中的每个元素,我们直接将其输出即可。
相关问题
Java创建一个数组,遍历,求每个学科的平均分数
好的,我可以帮你解答这个问题。
首先,你需要创建一个二维数组,其中每一行代表一个学生,每列代表一个学科,并填入相应的成绩,例如:
```
int[][] scores = {
{80, 90, 70},
{75, 85, 95},
{60, 70, 80}
};
```
然后,你可以通过遍历数组来计算每个学科的平均分数。具体来说,你需要计算每个学科的总分数,再除以学生人数,即可得到平均分数。代码示例如下:
```
int numStudents = scores.length;
int numSubjects = scores[0].length;
for (int j = 0; j < numSubjects; j++) {
int sum = 0;
for (int i = 0; i < numStudents; i++) {
sum += scores[i][j];
}
double average = (double) sum / numStudents;
System.out.println("Subject " + (j+1) + " average score: " + average);
}
```
这段代码会输出每个学科的平均分数,例如:
```
Subject 1 average score: 71.66666666666667
Subject 2 average score: 81.66666666666667
Subject 3 average score: 81.66666666666667
```
希望能够帮到你!
Mapreduce 求每个学科的平均分,学科作为行键,成绩作为列族,如何创建一个数组遍历成绩
在 MapReduce 中,输入数据通常以键值对的形式表示。对于本题,我们可以将学科作为键,成绩作为值,例如:
```
Mathematics 85
English 72
Mathematics 90
Science 78
English 83
```
为了计算每个学科的平均分,我们需要将相同学科的成绩累加起来,然后计算平均值。在 Mapper 阶段,我们可以将学科作为键,成绩作为值,输出键值对。在 Reducer 阶段,我们可以对相同学科的所有成绩进行累加,并计算平均值。
下面是一个简单的示例代码,假设输入数据已经按照学科排序:
```java
public static class AvgScoreMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
private Text subject = new Text();
private IntWritable score = new IntWritable();
@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String[] parts = value.toString().split("\\s+");
subject.set(parts[0]);
score.set(Integer.parseInt(parts[1]));
context.write(subject, score);
}
}
public static class AvgScoreReducer extends Reducer<Text, IntWritable, Text, DoubleWritable> {
private DoubleWritable avgScore = new DoubleWritable();
@Override
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
int sum = 0;
int count = 0;
for (IntWritable value : values) {
sum += value.get();
count++;
}
double avg = (double) sum / count;
avgScore.set(avg);
context.write(key, avgScore);
}
}
```
在 Mapper 中,我们首先将输入数据按空格分割成数组,然后将数组的第一个元素作为学科,第二个元素作为成绩,将学科和成绩分别设置到 `Text` 和 `IntWritable` 对象中,并输出键值对。
在 Reducer 中,我们首先对相同学科的所有成绩进行累加,并记录成绩的个数。然后计算平均值,将学科和平均值分别设置到 `Text` 和 `DoubleWritable` 对象中,并输出键值对。
在以上示例代码中,并没有使用数组来遍历成绩。在 MapReduce 中,我们通常使用迭代器来遍历值的集合。在 Reducer 中,输入的值是一个 `Iterable` 对象,可以使用 `for` 循环遍历所有的成绩。在示例代码中,我们使用增强型 `for` 循环来遍历值的集合。