从键盘输入n个数,计算平均值,求其最大(小)值,并从大到小或从小到大排列(Array+ArrayList实现)

1.求平均数思想:

将输入数字放进数组,循环结构将每个元素累加。然后累加和除以数组长度得出平均值。注意:平均值应该是float型。

2.求其最大(小)值思想:

自定义成员变量max(min),遍历数组,循环结构中依次对比max(min)与各个元素值,求出数组中最大(小)值。

2.实现数字排序的思想:

将输入的数字放进数组,因为数组创建后不可以改变其大小,则需要将数组转换为Integer泛型集合。然后每次找到其最大(小)值,并且在当前集合删除此元素,然后将最大(小)值依次添加到另外一个Integer泛型集合中。这样得到的另外一个集合就是排序好的。

 

案例:从键盘输入5个数字,求出平均值,并从大到小,从小到大排序

 1 package api.arraylist.paixu;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Arrays;
 5 import java.util.Scanner;
 6 
 7 public class PaiXu {
 8     public static void main(String[] args) {
 9         float avg = 0;
10         int sum = 0;
11         ArrayList<Integer> list = new ArrayList<>();
12         ArrayList<Integer> list2 = new ArrayList<>();
13         int[] array = getArr();
14         for (int j : array) {
15             list.add(j);
16         }
17         //从大到小排列方法:
18         do {
19             int max = list.get(0);
20             for (Integer integer : list) {
21                 if (integer >= max) {
22                     max = integer;
23                 }
24             }
25             list2.add(max);
26             list.remove((Integer) max);  //获取ArrayList对应元素索引值:ArrayList.indexOf(元素名);
27         } while (!list.isEmpty());
28         System.out.println("从大到小:");
29         System.out.println(list2);
30         //恢复list到初始状态
31         for (int j : array) {
32             list.add(j);
33         }
34         list2.clear();
35         //从小到大排列方法:
36         do {
37             int min = list.get(0);
38             for (Integer integer : list) {
39                 if (integer <= min) {
40                     min = integer;
41                 }
42             }
43             list2.add(min);
44             list.remove((Integer) min);  //获取ArrayList对应元素索引值:ArrayList.indexOf(元素名);
45         } while (!list.isEmpty());
46         System.out.println("从小到大:");
47         System.out.println(list2);
48         //计算平均值:
49         for (Integer integer : list2) {
50             sum += integer;
51         }
52         avg = (float) sum / (float) list2.size();
53         System.out.println("平均数:" + avg);
54 
55     }
56     
57     //从键盘获取数字 添加到数组
58     public static int[] getArr() {
59         Scanner sc = new Scanner(System.in);
60         int[] arr = new int[5];
61         for (int i = 0; i < arr.length; i++) {
62             System.out.print("请输入第" + (i + 1) + "个数:");
63             arr[i] = sc.nextInt();
64         }
65         System.out.println("原本数组:" + Arrays.toString(arr));
66         return arr;
67     }
68 }

 

 另外两种简单数组排序方法点击这里

 
posted @ 2021-04-12 11:45  YuJiuYao  阅读(1180)  评论(0编辑  收藏  举报