Java 获取随机列作为字符串列表
使用下面的代码,我试图获取Java 获取随机列作为字符串列表,java,string,list,Java,String,List,使用下面的代码,我试图获取columnsList String中以逗号分隔的列的值,这非常好- final String columnsList = getColumns(service.getColumns()); private String getColumns(final List<String> columns) { List<String> copy = new ArrayList<String>(columns); Collec
columnsList String
中以逗号分隔的列的值,这非常好-
final String columnsList = getColumns(service.getColumns());
private String getColumns(final List<String> columns) {
List<String> copy = new ArrayList<String>(columns);
Collections.shuffle(copy);
int rNumber = random.nextInt(columns.size()) + 1;
List<String> subList = copy.subList(0, rNumber);
Collections.sort(subList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return columns.indexOf(o1) < columns.indexOf(o2) ? -1 : 1;
}
});
return StringUtils.join(subList, ",");
}
final String columnsList=getColumns(service.getColumns());
私有字符串getColumns(最终列表列){
列表副本=新的ArrayList(列);
收藏。洗牌(复制);
int rNumber=random.nextInt(columns.size())+1;
列表子列表=复制。子列表(0,r编号);
Collections.sort(子列表,新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
返回列.indexOf(o1)<列.indexOf(o2)?-1:1;
}
});
返回StringUtils.join(子列表,“”,“”);
}
现在我需要以这种方式更改上面的getColumns
方法,而不是将各个列
以逗号
分隔作为字符串返回,它应该将各个列作为列表
返回给我。所以我想到的一种方法是使用array.asList
-
final List columnsList=Arrays.asList(getColumns(service.getColumns()).trim().split(“,”)代码>
但是我正在寻找一些其他的方法来修改getColumns
方法,这样它总是以字符串列表的形式返回列,而不是像我目前使用数组时那样。asList
不是只返回子列表那么简单,还是我遗漏了什么
private List<String> getColumns(final List<String> columns) {
List<String> copy = new ArrayList<String>(columns);
Collections.shuffle(copy);
int rNumber = random.nextInt(columns.size()) + 1;
List<String> subList = copy.subList(0, rNumber);
Collections.sort(subList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return columns.indexOf(o1) < columns.indexOf(o2) ? -1 : 1;
}
});
return subList;
}
private List getColumns(最终列表列){
列表副本=新的ArrayList(列);
收藏。洗牌(复制);
int rNumber=random.nextInt(columns.size())+1;
列表子列表=复制。子列表(0,r编号);
Collections.sort(子列表,新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
返回列.indexOf(o1)<列.indexOf(o2)?-1:1;
}
});
返回子列表;
}
您应该能够通过替换返回StringUtils.join(子列表,“,”)来实现这一点代码>带有返回子列表代码>