1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值
分析:
• 创建键盘录入数据对象
• 键盘录入多个数据,我们不知道多少个,所以用集合存储
• 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了
• 把集合转成数组
• 对数组排序
• 获取该数组中的最大索引的值
2. 代码实现:
1 1. package cn.itcast_03; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Scanner; 6 7 /* 8 * 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 9 * 10 * 分析: 11 * A:创建键盘录入数据对象 12 * B:键盘录入多个数据,我们不知道多少个,所以用集合存储 13 * C:以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 14 * D:把集合转成数组 15 * E:对数组排序 16 * F:获取该数组中的最大索引的值 17 */ 18 public class ArrayListDemo { 19 public static void main(String[] args) { 20 // 创建键盘录入数据对象 21 Scanner sc = new Scanner(System.in); 22 23 // 键盘录入多个数据,我们不知道多少个,所以用集合存储 24 ArrayList<Integer> array = new ArrayList<Integer>(); 25 26 // 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 27 while (true) { 28 System.out.println("请输入数据:"); 29 int number = sc.nextInt(); 30 if (number != 0) { 31 array.add(number); 32 } else { 33 break; 34 } 35 } 36 37 // 把集合转成数组 38 // public <T> T[] toArray(T[] a) 39 Integer[] i = new Integer[array.size()]; 40 // Integer[] ii = array.toArray(i); 41 array.toArray(i); 42 // System.out.println(i); 43 // System.out.println(ii); 44 45 // 对数组排序 46 // public static void sort(Object[] a) 47 Arrays.sort(i); 48 49 // 获取该数组中的最大索引的值 50 System.out.println("数组是:" + arrayToString(i) + "最大值是:" 51 + i[i.length - 1]); 52 } 53 54 public static String arrayToString(Integer[] i) { 55 StringBuilder sb = new StringBuilder(); 56 57 sb.append("["); 58 for (int x = 0; x < i.length; x++) { 59 if (x == i.length - 1) { 60 sb.append(i[x]); 61 } else { 62 sb.append(i[x]).append(", "); 63 } 64 } 65 sb.append("]"); 66 67 return sb.toString(); 68 } 69 }
运行结果,如下:
时间: 2024-10-27 12:59:56