题目要求 随机输入20个1-100之间的整数 存到一个数组中 然后求他们的平均值 然后计算最大值与最小值的差

public class Test03 {
public static void main(String[] args) {
HashSet<Integer> hs = new HashSet<>();
Random ran = new Random();
int i=0;
while(true){
hs.add(ran.nextInt(100)+1);
if(hs.size()==20){
break;
}
}
Iterator<Integer> it=hs.iterator();
while(it.hasNext())
{
System.out.print(it.next()+" ");
}
Integer[] arr=(Integer[])hs.toArray();
for(int j=0;j<hs.size();j++)
{
System.out.print(arr[i]+" ");
}

// 遍历数组
bianLi(arr);
// 秋初输入数字的平均值
pingJun(arr);
// 计算最大元素与最小元素的差值
chaZhi(arr);
}
//1.
public static void bianLi(Integer arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}

}
// 2.
public static void pingJun(Integer arr[]){
Integer sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
System.out.println(sum/20);
}

// 3
public static void chaZhi(Integer arr[]){
for (int i = 0; i < arr.length; i++) {
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
Integer temp = arr[j];
arr[j] = arr[j+1];
arr[j+1]=temp;
}
}
// 求最大值与最小值的差值

}
Integer ChaZhi = arr[arr.length-1]-arr[0];
System.out.println(ChaZhi);
//排序后的数组arrshi
System.out.println(Arrays.toString(arr));
}
}

最后的输出结果是1 71 64 4 36 67 9 44 14 45 50 86 80 82 22 57 95 94 31 90 Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
at tes03.Test03.main(Test03.java:23)

hs.toArray();返回的是Object类型的数组,不能向下强转为Integer类型

Integer[] arr=(Integer[])hs.toArray();改为下面的:

Integer[] arr= new Integer[hs.size()];

hs.toArray(arr);

你这个泛型少了虽然jdk7不会报错但是代码规范还是遵循吧,养成良好的编码习惯。

追问

还想问您一下就是想查看D盘下的各文件类型的个数 判断条件是什么

追答

java.io.File
File file=new File("路径");
中的listFiles() 获取目录下的所有文件和目录,判断是文件还是目录isDirectory() true是目录,false是文件。getName() 获取文件或目录名可以根据文件的后缀判断是什么文件,如果没有后缀的文件你要想知道是什么类型的文件,你需要找各大类型文件的判断方法,我也没了解过。

追问

哥 这样做不行啊 说D盘路径找不到

追答

你确定你的路径没有错?

温馨提示:答案为网友推荐,仅供参考
相似回答