Java tutorial
//package com.java2s; //License from project: Open Source License import java.util.ArrayList; import java.util.List; import java.util.function.Function; public class Main { /** * Move an object in List up * * @param list * @param key * @param keyMapper * @return */ public static <T, K> boolean moveUp(List<T> list, K key, Function<T, K> keyMapper, int n) { ArrayList<T> newList = new ArrayList<T>(); boolean changed = false; for (int i = 0; i < list.size(); i++) { T item = list.get(i); if (i > 0 && key.equals(keyMapper.apply(item))) { int posi = i - n; if (posi < 0) posi = 0; newList.add(posi, item); changed = true; } else newList.add(item); } if (changed) { list.clear(); list.addAll(newList); return true; } return false; } public static <T, K> boolean moveUp(List<T> list, K key, Function<T, K> keyMapper) { return moveUp(list, key, keyMapper, 1); } }