* 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值。
*
* 分析:
* A: 创建键盘录入数据对象
* B: 键盘录入多个数据,我们不知道多少个,所以用集合存储
* C: 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了
* D: 把集合转成数组
* E: 对数组排序
*
* 分析:
* A: 创建键盘录入数据对象
* B: 键盘录入多个数据,我们不知道多少个,所以用集合存储
* C: 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了
* D: 把集合转成数组
* E: 对数组排序
* F: 获取该数组中的最大索引的值
代码演示:
package cn.itcast_04;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class ArrayListDemo {
public static void main(String[] args) {
// 创建键盘录入数据对象
Scanner sc = new Scanner(System.in);
// 键盘录入多个数据,我们不知道有多少个,所以用集合存储
ArrayList<Integer> array = new ArrayList<Integer>();
// 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了
while (true) {
System.out.print("请输入数据:");
// nextInt()方法:用来接收输入的整数。
// nextLine()方法:用来接收输入的字符串。
int number = sc.nextInt();
if (number != 0) {
array.add(number);
} else {
break;
}
}
// 把集合转成数组
// public <T> T[] toArray(T[] a)
Integer[] shuzu = new Integer[array.size()];
array.toArray(shuzu);
// 对数组排序
// public static void sort(Object[] a)
Arrays.sort(shuzu);
// 获取该数组中的最大索引的值
System.out.println("数组是:" + arrayToString(shuzu));
System.out.println("最大值是:" + shuzu[shuzu.length - 1]);
}
// 数组转为字符串
public static String arrayToString(Integer[] sz) {
StringBuilder sb = new StringBuilder(); // 字符串缓冲区
sb.append("[");
for (int x = 0; x < sz.length; x++) {
if (x == sz.length - 1) {
sb.append(sz[x]);
} else {
sb.append(sz[x]).append(", ");
}
}
sb.append("]");
return sb.toString(); // 字符串
}
}