Java ArrayList get() 作为整数而不是对象

标签 java arrays arraylist integer

Java 新手。试图理解声明我的 ArrayList 的意义作为<Integer> .我还得投我的.get()结果为 int在我的方法中让它工作,否则它仍然返回 Object .例如:(int) deliv.get(j) int 排序方法的 for环形。有没有办法避免这种情况或者我的代码是正确的方法?

问题:假设数组可以改变大小,因此不只是使用原始数组。所有数字都应该成对,寻找缺少它的对值的唯一数字。我对数组进行排序,然后循环遍历这些对以查找不匹配项。谢谢。

import java.util.*;
class StolenDrone{
public static void main(String[] args){
    ArrayList<Integer> deliv_id = new ArrayList<>();
    deliv_id.add(99);
    deliv_id.add(13);
    deliv_id.add(4);
    deliv_id.add(5);
    deliv_id.add(8);
    deliv_id.add(99);
    deliv_id.add(8);
    deliv_id.add(5);
    deliv_id.add(4);

    System.out.println("Array is: " + deliv_id);
    sort(deliv_id);
    System.out.println("Array is: " + deliv_id);
    int unique = findUnique(deliv_id);
    System.out.println("Unique ID is: " + unique);   
}

//Sort ArrayList into increasing order
static void sort(ArrayList deliv){
    int temp;
    for(int i = 0; i<deliv.size();i++){
        for (int j=0; j<deliv.size()-1;j++){
            if((int) deliv.get(j)> (int) deliv.get(j+1)){
                temp = (int) deliv.get(j+1);
                deliv.set(j+1, deliv.get(j));
                deliv.set(j, temp);
            }
        }
    }
}

//check pairs in ArrayList to find unique entry
static int findUnique(ArrayList deliv){
    for(int i = 0; i<deliv.size()-1;i+=2){
        if(deliv.get(i) == null){
            return -1; //no unique
        }
        if((int) deliv.get(i) != (int) deliv.get(i+1)){
            return (int) deliv.get(i);
        }
    }
    return -1;
}

}

最佳答案

当您键入 parameterize ArrayList<Integer> 时编译器知道 ArrayList 中的所有内容都是 Integer 类型并且只允许您添加 Integers到列表中,因此 get()返回 Integer .如果不参数化,编译器将允许您添加任何 ObjectArrayList , 从而调用 get()将返回 Object并要求转换为 int .

要消除强制转换的需要,您需要更改类型为 ArrayList 的参数至 ArrayList<Integer>在函数声明中。

关于Java ArrayList get() 作为整数而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794672/

相关文章:

c - 选择数组中的某个字符

PHP/SQL 尝试获取状态=某些内容的所有订单号并将订单号放入数组中

java - Android Arraylist 查找索引

java - 如何动态执行给变量的内容

c# - 如何将带有键/值的数组转换为 JSON c#

java - 如何在 ArrayList 中找到最小值以及索引号? ( java )

java - 从某个位置获取 arraylist 10 项

java - android - 无法自定义 ActionBar

java - 在 Tomcat 6 上以特定顺序加载 Jar 文件

java - 将 ObservableList 插入 TableView JavaFX