Joe*_*oel 5 java arraylist classcastexception java-8
我正在尝试将其切ArrayList<String>成两半。
ArrayList<String> in = new ArrayList<>(), out1, out2;
out1 = (ArrayList<String>) in.subList(0,2); //will cause an ClassCastException: List cannot be casted to ArrayList
out2 = (ArrayList<String>) in.subList(2,5); // either here
Run Code Online (Sandbox Code Playgroud)
为什么?视图代表什么,哪个 subList 返回?
ArrayList的方法返回被调用( )subList的内部类的实例,而不是. 您可以将其存储在变量中,但不能将其转换为.ArrayListSubListprivate class SubList extends AbstractList<E> implements RandomAccessArrayListListArrayList
如果你希望你的子列表是一个独立的ArrayList,你可以创建一个新的ArrayList:
out1 = new ArrayList<String> (in.subList(0,2));
out2 = new ArrayList<String> (in.subList(2,5));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |