java - 尝试将整数数组列表转换为原始类型 int[]

标签 java arraylist primitive-types

我有一个名为 stockList 的整数数组列表。

我想要从 arrayList 中生成一个原始类型的 int[] stockListFinal

代码:

public class Warehouses {

    ArrayList<Warehouse> warehouses = new ArrayList<Warehouse>();
    ArrayList<Integer> stockList = new ArrayList<Integer>();
    ArrayList<String> locationsList = new ArrayList<String>();

    int[] stockListFINAL;
    int[] locationsListFINAL;

    public Warehouses() {

        addWarehouses();

        stockList();

        locationList();    
    }

    public void addWarehouses() {
        //DATABASE WOULD BE SEARCHED FOR EACH PRESENT RECORD AND ADDED HERE
        //FOR SIMPLICITY I HAVE DONE THIS MANUALLY

        warehouses.add(new Warehouse("W1", 20, "RM13 8BB"));
        warehouses.add(new Warehouse("W2", 28, "RM13 8BB"));
        warehouses.add(new Warehouse("W3", 17, "RM13 8BB"));
    }

    public void stockList() {

        for(Warehouse warehouse : warehouses) {

            Integer stock = warehouse.getStock();        
        }

        stockListFINAL = convertIntegers(stockList);
    }

    public static int[] convertIntegers(List<Integer> integers)
    {
        int[] ret = new int[integers.size()];

        for (int i=0; i < ret.length; i++)
        {
            ret[i] = integers.get(i);
        }
        return ret;
    }

    public void locationList() {
        for(Warehouse warehouse : warehouses) {

            String location = warehouse.getLocation();
        }
    } 
}


class Warehouse
{
    private String warehouseID;
    private int warehouseStock;
    private String location;

    /**
     * Constructor for objects of class Warehouse
     */
    public Warehouse(String warehouseID, int warehouseStock, String location)
    {
        // initialise instance variables
        this.warehouseID = warehouseID;
        this.warehouseStock = warehouseStock;
        this.location = location;
    }

    public int getStock(){
        return warehouseStock;
    }

    public String getLocation() {
        return location;
    }
}

stockListFinal 但是返回空。

这里发生了什么?

最佳答案

如果您在下面的类中运行 main,您将看到 int[] 已填充。这不是我建议的实现方式,但我尝试尽可能接近您的示例:

import java.util.ArrayList;
import java.util.List;

public class SE
{
    final static ArrayList<Integer> stockList = new ArrayList<Integer>();

    public static int[] convertIntegers(final List<Integer> integers)
    {
        final int[] ret = new int[integers.size()];

        for (int i = 0; i < ret.length; i++)
        {
            ret[i] = integers.get(i).intValue();
        }
        return ret;
    }

    public static void addStock()
    {
        stockList.add(20);
        stockList.add(30);
    }

    public static void main(final String[] args)
    {
        addStock();
        final int[] stockListFINAL = convertIntegers(stockList);
        for (int i = 0; i < stockListFINAL.length; i++)
        {
            System.out.println(String.format(" For location %d in the int[] the value is %d", i, stockListFINAL[i]));
        }
    }
}

关于java - 尝试将整数数组列表转换为原始类型 int[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20598153/

相关文章:

c# - 通过仅使用原始类型/委托(delegate)实现松散耦合

java - Hibernate UserType 在测试应用程序中工作,但不在 tomcat 上的 Web 服务上工作

java - 用于创建抽象类(而不是接口(interface))代理的 java.lang.reflect.Proxy 的替代品

java - 如何调用ArrayList中的每个数组并按年龄对ArrayList进行排序?

Java - 带有初始化 ArrayList 的 NullPointerException

casting - 什么特征可以用于标量转换?

java - 将数据从 BroadCastRecevier 传递到 Activity

java - 尝试上传文件时 FTPClient 连接超时/失败

java - Arraylist 的 list.add() 中出现错误

c# - 基本类型枚举 - 它存在吗