无法将int添加到整数的ArrayList中

时间:2018-02-22 02:00:11

标签: java

我应该创建一个新数组,它包含数组a和b的第一个元素(如果一个是空的,则为excpet,我必须跳过它)。问题是,当我尝试将int元素添加到ArrayList时,我得到错误: "不兼容的类型:java.util.ArrayList无法转换为int []" 这真烦人.. 这是代码:

public int[] front11(int[] a, int[] b) {
ArrayList<Integer> list = new ArrayList<Integer>();
if (a.length>0 & b.length>0){
    list.add(a[0]);
    list.add(b[0]);
}
if (b.length==0 & a.length>0){
    list.add(a[0]);
}
if (b.length>0 & a.length==0){
    list.add(b[0]);
}
return list;

}

3 个答案:

答案 0 :(得分:1)

list不是int[],您在这里不需要List。你也不需要一个实例,所以我做它static我会内联它(我也会防范null)。像,

public static int[] front11(int[] a, int[] b) {
    int alen = (a != null) ? a.length : 0, blen = (b != null) ? b.length : 0;
    if (alen > 0 && blen > 0) {
        return new int[] { a[0], b[0] };
    } else if (alen > 0) {
        return new int[] { a[0] };
    } else if (blen > 0) {
        return new int[] { b[0] };
    } else {
        return new int[0];
    }
}

答案 1 :(得分:1)

ArrayList不是数组,无论类的名称如何。它以这种方式命名,因为它在内部使用数组来管理列表。

使用ArrayList在这里也是过度的。你有4个场景,所以只需编码它们并根据需要创建返回的数组:

public static int[] front11(int[] a, int[] b) {
    if (a.length > 0 && b.length > 0)
        return new int[] { a[0], b[0] };
    if (a.length > 0)
        return new int[] { a[0] };
    if (b.length > 0)
        return new int[] { b[0] };
    return new int[0];
}

答案 2 :(得分:-1)

将int []返回类型转换为ArrayList<Integer>

    public ArrayList<Integer> front11(int[] a, int[] b) {
ArrayList<Integer> list = new ArrayList<Integer>();
if (a.length>0 & b.length>0){
    list.add(a[0]);
    list.add(b[0]);
}
if (b.length==0 & a.length>0){
    list.add(a[0]);
}
if (b.length>0 & a.length==0){
    list.add(b[0]);
}
return list;
}