Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//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 down
     * 
     * @param list
     * @param key
     * @param keyMapper
     * @return
     */
    public static <T, K> boolean moveDown(List<T> list, K key, Function<T, K> keyMapper, int n) {
        ArrayList<T> newList = new ArrayList<T>();
        boolean changed = false;
        int start = list.size() - 1;
        for (int i = start; i >= 0; i--) {
            T item = list.get(i);

            if (i != start && key.equals(keyMapper.apply(item))) {
                int posi = n;
                if (newList.size() < posi)
                    posi = newList.size();
                newList.add(posi, item);
                changed = true;
            } else
                newList.add(0, item);
        }

        if (changed) {
            list.clear();
            list.addAll(newList);
            return true;
        }
        return false;
    }

    public static <T, K> boolean moveDown(List<T> list, K key, Function<T, K> keyMapper) {
        return moveDown(list, key, keyMapper, 1);
    }
}