相关疑难解决方法(0)

直接在Java中设置ArrayList的值

设置Java ArrayList的值列表有效:

Integer[] a = {1,2,3,4,5,6,7,8,9};
ArrayList<Integer> possibleValues2 = new ArrayList<Integer>(Arrays.asList(a));
Run Code Online (Sandbox Code Playgroud)

但是,以下操作不起作用,并且具有错误"非法启动类型"以及其他错误.为什么不?由于第一个代码块中的第一行只是赋值,它不应该没有效果吗?

ArrayList<Integer> possibleValues2 = new ArrayList<Integer>(Arrays.asList({1,2,3,4,5,6,7,8,9}));
Run Code Online (Sandbox Code Playgroud)

java arraylist

13
推荐指数
2
解决办法
5万
查看次数

原始数组的"通用"解决方案?

我有用于处理原始数组输入的类:char []的CharArrayExtractor,byte []的ByteArrayExtractor,int []的IntegerArrayExtractor,...

public void CharArrayExtractor {

    public List<Record> extract(char[] source) {
        List<Record> records = new ArrayList<Record>();
        int recordStartFlagPos = -1;
        int recordEndFlagPos = -1;
        for (int i = 0; i < source.length; i++) {
            if (source[i] == RECORD_START_FLAG) {
                recordStartFlagPos = i;
            } else if (source[i] == RECORD_END_FLAG) {
                recordEndFlagPos = i;
            }
            if (recordStartFlagPos != -1 && recordEndFlagPos != -1) {
                Record newRecord = makeRecord(source, recordStartFlagPos,
                        recordEndFlagPos);
                records.add(newRecord);
                recordStartFlagPos = -1;
                recordEngFlagPos = -1;
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java arrays refactoring primitive-types

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

拳击与Arrays.asList()

在以下示例中:

class ZiggyTest2{
    public static void main(String[] args){

        int[] a = { 1, 2, 3, 4,7};      

        List<Integer> li2 = new ArrayList<Integer>();
        li2 = Arrays.asList(a);     

    }
}   
Run Code Online (Sandbox Code Playgroud)

编译器抱怨int []和java.lang.Integer不兼容.即

found   : java.util.List<int[]>
required: java.util.List<java.lang.Integer>
                li2 = Arrays.asList(a);
                               ^
Run Code Online (Sandbox Code Playgroud)

如果我更改List定义以删除泛型类型,它工作正常.

List li2 = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
  • 编译器是否应该自动将整数注入整数?
  • 如何List<Integer>使用Arrays.asList()从int数组创建对象?

谢谢

java generics collections

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

在Java中,char []是一个对象吗?

我是Java的新手,但如果我理解正确的话,char就是原始的.

执行char temp和temp.hashCode()不会编译,但执行char [] temp2 = new char [2]和temp2.​​hashCode()将编译并执行.

这是不是意味着char []是一个对象???

java arrays object primitive-types

4
推荐指数
2
解决办法
3124
查看次数

为什么可以将int []转换为Object,而不是转换为Object []?

这样可行:

int i;
Object a  = (Object) i;
int[] t;
Object b = (Object) t;
String[] s;
Object[] t = (Object[]) s;
Run Code Online (Sandbox Code Playgroud)

但这不是:

int[] t;
Object[] z = (Object[]) t;
Run Code Online (Sandbox Code Playgroud)

总而言之,我得到了第一部分(拳击),但我发现第二部分不起作用非常不直观.是否有一个特定的原因(除了继承自Object的String和int不继承自Object)?

编辑:

为了优化我的问题,这也有效:

int a = 2;
int b = 3;
int c = 4;
int d = 2;
Object[] o = new Object[] {a,b,c,d};
Run Code Online (Sandbox Code Playgroud)

但是接下来没有:

int[] t = (int[]) o;
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是你遇到了与String相同的问题:

String sa = "a";
String sb = "b";
String sc = "c";
String sd = "d";
Object[] so …
Run Code Online (Sandbox Code Playgroud)

java arrays primitive casting

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

将数组转换为LIST或Set的最快方法是什么?

在Java中,将数组转换为List或set的最简单方法是什么?

String[] a = {"Test1", "test2"};

List<String> l = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

java

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