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

标签 java arraylist compiler-errors

我被指派编写一个程序,该程序获取 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/

相关文章:

java - 如何从在 log4j RollingFileAppender 中的 Java 中启动的 Shell 脚本输出日志?

java - Struts 2 session 超时

java - 如何在 java MVC 中的 arraylist .TXT 文件中显示 JTable 中的记录?

java - 需要帮助将数组 imageicon 解析为 JButton

c++ - 在 Windows 上运行的 GCC 代码编译器错误

java - 没有在 Spring Controller 方法中获取 JSON 值

java - 使用 Java、Hibernate 将唯一行插入数据库表

java - 在非满数组中随机选择一个数组元素

java - 如何获取字符串数组并将它们进一步分成对象?

android - Xamarin 函数错误