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

use*_*772 5 groovy list

如何重新排序列表说:

['apple', 'banana', 'orange']
Run Code Online (Sandbox Code Playgroud)

如果用户选择banana,则列表变为

['banana', 'apple', 'orange']
Run Code Online (Sandbox Code Playgroud)

Jay*_* P. 6

另一种方法是:

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)
Run Code Online (Sandbox Code Playgroud)


小智 5

分成两个列表并重新组合 - 很容易推广到非字符串列表:

List<String> moveToStart(List<String> original, String input) {
  original.split {it.equals(input)}.flatten()
}
Run Code Online (Sandbox Code Playgroud)


cod*_*LMN 3

List pickToFirst(List list, int n) {
    return list[n,0..n-1,n+1..list.size()-1]
}
Run Code Online (Sandbox Code Playgroud)

就你而言,

    def list = ['apple', 'banana', 'orange']
    def newList = pickToFirst(list, 1)
Run Code Online (Sandbox Code Playgroud)