我有这样的代码:
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.UnsupportedOperationException
06-03 15:05:29.614: ERROR/AndroidRuntime(7737): at java.util.AbstractList.remove(AbstractList.java:645)
这样做是正确的吗?Java.15
不能向固定大小的数组列表中删除或添加数组。
但您可以从该列表创建子列表。
List = List。subList(0, list.size() - (list.size() - count));
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 = list.subList(0, list.size() - (list.size() - count));
}
return StringUtils.join(list, ", ");
}
*另一种方法是
ArrayList<String> al = new ArrayList<String>(Arrays.asList(template));
这将创建数组列表,它不像Arrays.asList那样是固定大小的
不能向固定大小的数组列表中删除或添加数组。
但您可以从该列表创建子列表。
List = List。subList(0, list.size() - (list.size() - count));
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 = list.subList(0, list.size() - (list.size() - count));
}
return StringUtils.join(list, ", ");
}
*另一种方法是
ArrayList<String> al = new ArrayList<String>(Arrays.asList(template));
这将创建数组列表,它不像Arrays.asList那样是固定大小的