为什么在尝试从列表中删除元素时会得到一个UnSuptedOperationException?我有个密码:public static String SelectRandomFromTemplate(String template,int count) {
String[] split = template.split("|");
List<String> list=Arrays.asList(split);
Random r = new Random();
while( list.size() > count ) {
list.remove(r.nextInt(list.size()));
}
return StringUtils.join(list, ", ");}我明白了:06-03 15:05:29.614: ERROR/AndroidRuntime(7737): java.lang.UnsupportedOperationException06-03 15:05:29.614: ERROR/AndroidRuntime(7737): at java.util.AbstractList.remove(AbstractList.java:645)这怎么才是正确的呢?Java.15
3 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
在……上面 Arrays.asList返回一个固定大小的列表
Arrays.asList*返回 固定尺寸列表由指定的数组支持。
addremoveList.
固定
LinkedListremove.
List<String> list = new LinkedList<String>(Arrays.asList(split));
在……上面 split取正则
String.split(String regex)*将此字符串拆分为给定的匹配项。 正则表达式 .
||\|"\\|".
修正:
template.split("\\|")关于更好的算法
removeListlistIterator()remove()
O(N).
至尊宝的传说
TA贡献1789条经验 获得超10个赞
Arrays.asList
newList.addAll(Arrays.asList(newArray));
添加回答
举报
0/150
提交
取消
