Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取随机列作为字符串列表_Java_String_List - Fatal编程技术网

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(子列表,“,”)来实现这一点带有
返回子列表