相关疑难解决方法(0)

如何在Java中从数组(int [])创建ArrayList(ArrayList <Integer>)

我看到了一个问题:从数组中创建ArrayList

但是,当我使用以下代码尝试该解决方案时,它并不适用于所有情况:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

public class ToArrayList {

    public static void main(String[] args) {
        // this works
        String[] elements = new String[] { "Ryan", "Julie", "Bob" };
        List<String> list = new ArrayList<String>(Arrays.asList(elements));
        System.out.println(list);

        // this works
        List<Integer> intList = null;
        intList = Arrays.asList(3, 5);
        System.out.println(intList);

        int[] intArray = new int[] { 0, 1 };
        // this doesn't work!
        intList = new ArrayList<Integer>(Arrays.asList(intArray));
        System.out.println(intList);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?代码不应该intList = new ArrayList<Integer>(Arrays.asList(intArray));编译得很好吗?

java arrays generics collections

21
推荐指数
4
解决办法
9万
查看次数

为什么不声明一个数组最终使它在Java中不可变?

为什么不声明一个数组最终使它在Java中不可变?不宣称最终意味着它无法改变?

与不可变数组相关的问题中可以清楚地看出,声明一个数组final并不会使它不可更改.

以下是可能的.

final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;
Run Code Online (Sandbox Code Playgroud)

我的问题是:那么在这里宣布决赛的功能是什么?

java final immutability

15
推荐指数
2
解决办法
9653
查看次数

Java不可修改的数组

final Integer[] arr={1,2,3};
arr[0]=3;
System.out.println(Arrays.toString(arr));
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的代码,看看是否可以重新分配最终数组的变量[ ans:它可以].我理解通过最终的Integer []数组,这意味着我们不能分配另一个Integer []的实例,而不是我们拥有的那个最初分配.我想知道是否有可能使数组变量也不可修改.

java arrays unmodifiable

12
推荐指数
3
解决办法
2万
查看次数

有没有办法让Java中的普通数组不可变?

用Google搜索,找到了大量的代码.但是他们中的任何一个都给了我想要的东西.我想制作一个普通的数组Immutable.我试过这个:

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

public class test {

    public static void main(String[] args) {

        final Integer array[];

        List<Integer> temp = new ArrayList<Integer>();
        temp.add(Integer.valueOf(0));
        temp.add(Integer.valueOf(2));
        temp.add(Integer.valueOf(3));
        temp.add(Integer.valueOf(4));
        List<Integer> immutable = Collections.unmodifiableList(temp);

        array = immutable.toArray(new Integer[immutable.size()]);

        for(int i=0; i<array.length; i++)
            System.out.println(array[i]);

        array[0] = 5;

        for(int i=0; i<array.length; i++)
            System.out.println(array[i]);

    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我可以将5分配给数组[0] ...有没有办法让这个数组不可变?

java arrays

9
推荐指数
1
解决办法
8893
查看次数

Java数组的常量

如何在不使用的情况下在Java中声明和初始化常量数组enums

static final Type[] arrayOfConstants = new Type[10]; // not an array of constants
Run Code Online (Sandbox Code Playgroud)

java arrays enums

7
推荐指数
2
解决办法
3万
查看次数

单个数组引用可以最终完成吗?

我没有用例,但出于好奇,有没有办法在数组中最终进行单独引用?

final Integer[] intArray = new Integer[10];  // doesn't make individual references final
final intArray[0] = Integer.valueOf(1);  // something like this is not allowed
Run Code Online (Sandbox Code Playgroud)

java arrays final

5
推荐指数
0
解决办法
45
查看次数

如何在Java中创建一个数组只读?

可能的重复:
Java不可修改的数组Java中的不可
变数组

如何使数组只读,以便只能读取其中的元素,但不能修改,添加或删除.需要在JAVA中这样做.请帮忙.我认为仅使用final关键字不会有所帮助.需要在代码级别做更多的事情.提前致谢!

java arrays

3
推荐指数
1
解决办法
5455
查看次数

java final和参差不齐的数组

为什么这段代码有效?

public class Final {
    public final int[][] arr = new int[2][];
    Final(){
        arr[0] = new int[4];
        arr[0] = new int[5];
        arr[1] = new int[4];
        }
    public static void main(String[] args) {
        Final fi = new Final();
        System.out.println(fi.arr[0].length);
        System.out.println(fi.arr[1].length);
    }
}
Run Code Online (Sandbox Code Playgroud)

而下列情况不能工作(这是正确的,因为我承担).

public class Final {
    public final int[] arr;
    Final(){
        arr = new int[4];
        arr = new int[5];
        }
    public static void main(String[] args) {
        Final fi = new Final();
        System.out.println(fi.arr.length);
    }
}
Run Code Online (Sandbox Code Playgroud)

什么时候final声明"踢"?

java final

3
推荐指数
1
解决办法
96
查看次数