Java List Move Item moved(List old, List nu, Collection added, Collection removed)

Here you can find the source of moved(List old, List nu, Collection added, Collection removed)

Description

moved

License

Apache License

Declaration

public static List<String> moved(List<String> old, List<String> nu, Collection<String> added,
            Collection<String> removed) 

Method Source Code


//package com.java2s;
/*//  ww  w .  j a  v a 2  s .co m
 *  Copyright 2011-2015 Hippo B.V. (http://www.onehippo.com)
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Main {
    public static List<String> moved(List<String> old, List<String> nu, Collection<String> added,
            Collection<String> removed) {
        List<String> moved = null;
        // first we construct the new list with added nodes removed and removed nodes added
        // so that the difference with the old list is just moved nodes
        List<String> compare = null;
        if (added != null) {
            for (String child : added) {
                if (compare == null) {
                    compare = new ArrayList<String>(nu);
                }
                compare.remove(child);
            }
        }
        if (removed != null) {
            for (String child : removed) {
                if (compare == null) {
                    compare = new ArrayList<String>(nu);
                }
                compare.add(old.indexOf(child), child);
            }
        }
        if (compare == null) {
            compare = nu;
        }
        // now we can determine if any nodes were moved
        for (String child : old) {
            if (old.indexOf(child) != compare.indexOf(child)) {
                if (moved == null) {
                    moved = new ArrayList<String>(old.size());
                }
                moved.add(child);
            }
        }
        return moved;
    }
}

Related

  1. minus(List initialList, List elementsToRemove)
  2. move(List aList, int anIndex1, int anIndex2)
  3. move(List collection, int indexToMoveFrom, int indexToMoveAt)
  4. moveBackward(final List list, final int[] indices)
  5. moveBefore(List list, T element, T referenceElement)
  6. moveDownItems(List list, int[] positions)
  7. moveElementInList(List list, int targetIndex, int sourceIndex)
  8. moveElementToIndex( List list, ELEMENT fromElement, ELEMENT toElement)
  9. moveInList(List list, int index, T listItem)

  10. HOME | Copyright © www.java2s.com 2016