我被指派编写一个程序,获取 100 个 0-25 之间的随机整数并将它们存储在一个数组中。
然后我必须调用两种方法来分割偶数和赔率(非常典型)。
所以我尝试了 ArrayList 的东西(我刚刚学会它),它看起来很好(我正在关注教程和在线的东西),直到我遇到这个:Unit8.java 使用未经检查或不安全的操作
我的代码是这样的:
import java.util.*;
import java.awt.*;
public class Unit8
{
public static void main (String [] args)
{
//create an array for original 100 integers
//create a 2D array for evens and odds
//split them up using 2 methods
int[] originalArray = new int[100];
ArrayList even = new ArrayList(1);
ArrayList odd = new ArrayList(1);
for (int x = 0; x < originalArray.length; x++)
{
originalArray[x] = (int)(Math.random() * 25);
}
evensDivider(originalArray, even);
oddsDivider(originalArray, odd);
}
public static void evensDivider (int[] e, ArrayList even)
{
for (int y = 0; y < e.length; y++)
{
if (e[y]%2 == 0)
even.add(e[y]);
}
System.out.println("The evens are: " + even);
}
public static void oddsDivider (int[] o, ArrayList odd)
{
for (int z = 0; z < o.length; z++)
{
if (o[z]%2 == 1)
odd.add(o[z]);
}
}
}
错误具体发生在:even.add(e[y]);
和odd.add(o[z]);
请帮助我解决这个问题,我已尽力使其清晰易懂。
这是因为您正在使用ArrayList
with raw type
。并且您正在向其添加特定类型。
原始类型 ArrayList 需要 Object 类型的元素。如果您添加任何其他类型,那么编译器将无法确切知道您正在存储什么类型。所以,它给你unchecked or unsafe operations
警告您可能做错了什么。
你应该更好地创建一个Generic
数组列表:-
List<Integer> evenNumbers = new ArrayList<Integer>();
另外,在你的method
签名: -
public static void evensDivider (int[] e, List<Integer> evenNumbers)
PS: - 您应该始终有一个参考interface type
如果你有。我的意思是使用List
代替ArrayList
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)