gpt4 book ai didi

java - ArrayList 的不安全或未经检查的操作

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:18 24 4
gpt4 key购买 nike

我被指派编写一个程序,该程序获取 0-25 之间的 100 个随机整数并将它们存储在一个数组中。然后我必须调用 2 种方法来拆分偶数和赔率(非常典型)。所以我尝试了 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]);

请帮我解决这个问题,我已尽力使其清晰易懂。

最佳答案

这是因为您使用的是 ArrayListraw type。你正在向它添加一个特定的类型。

原始类型 ArrayList 需要对象类型的元素。如果您添加任何其他类型,那么编译器将无法确切知道您存储的是什么类型。因此,它会向您提供未经检查或不安全的操作,以警告您可能做错了什么。

你最好创建一个Generic ArrayList:-

List<Integer> evenNumbers = new ArrayList<Integer>();

此外,在您的方法签名中更改它:-

public static void evensDivider (int[] e, List<Integer> evenNumbers)

PS:- 如果您有接口(interface)类型,您应该始终引用。我的意思是使用 List 代替 ArrayList

关于java - ArrayList 的不安全或未经检查的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12947806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com