Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
List 如何在groovy中将元素移动到列表的第一个位置_List_Groovy - Fatal编程技术网

List 如何在groovy中将元素移动到列表的第一个位置

List 如何在groovy中将元素移动到列表的第一个位置,list,groovy,List,Groovy,如何对列表进行重新排序,例如: ['apple', 'banana', 'orange'] 如果用户选择“香蕉”,则列表将变为 ['banana', 'apple', 'orange'] 就你而言 def list = ['apple', 'banana', 'orange'] def newList = pickToFirst(list, 1) 另一种方法是: def list = ['apple', 'banana', 'orange'] // get a refere

如何对列表进行重新排序,例如:

['apple', 'banana', 'orange']
如果用户选择“香蕉”,则列表将变为

['banana', 'apple', 'orange']
就你而言

    def list = ['apple', 'banana', 'orange']
    def newList = pickToFirst(list, 1)
另一种方法是:

def list = ['apple', 'banana', 'orange']
// get a reference to the selection (banana)
def pick = list.find { it == 'banana' }
// remove selection from the the list
def newList = list.minus(pick)
// add selection back at the beginning
newList.add(0, pick)

拆分为两个列表并重新组合-对于非字符串列表很容易推广:

List<String> moveToStart(List<String> original, String input) {
  original.split {it.equals(input)}.flatten()
}
List moveToStart(列表原始,字符串输入){
original.split{it.equals(input)}.flatte()
}

不幸的是,这不适用于列表的最后一个元素(即
n==list.size()-1
)。您可以尝试使用
list[n,0..n-1]+list[n+1..谢谢。我一起忽略了有效性检查,比如if(n>0),list not empty,当然还有您提出的问题。奇怪的是
list[n,0..n-1,n+1..
list[n,0..n-1]+list[n+1。。
List<String> moveToStart(List<String> original, String input) {
  original.split {it.equals(input)}.flatten()
}