设置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) 我有用于处理原始数组输入的类: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) 在以下示例中:
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的新手,但如果我理解正确的话,char就是原始的.
执行char temp和temp.hashCode()不会编译,但执行char [] temp2 = new char [2]和temp2.hashCode()将编译并执行.
这是不是意味着char []是一个对象???
这样可行:
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中,将数组转换为List或set的最简单方法是什么?
String[] a = {"Test1", "test2"};
List<String> l = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud) java ×6
arrays ×3
arraylist ×1
casting ×1
collections ×1
generics ×1
object ×1
primitive ×1
refactoring ×1