package com.avic.common.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<Integer, String> maps = new HashMap<Integer, String>();
maps.put(1, "a");
maps.put(2, "b");
maps.put(3, "c");
maps.put(4, "d");
maps.put(5, "e");
mapsMoveChangeOrderNum(1, 5, maps);
System.out.println("-------------------------------");
List<String> lists=new ArrayList<String>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
lists.add("5");
listMoveChangeOrderNum(1, 5, lists);
}
/**
* 移动节点,排序号进行重新排序,只对需要操作的节点进行操作(前提:maps集合的数据是从小到大升序排列)
*
* @param nowNum
* 当前节点排序号
* @param moveNum
* 移动至第几位
* @param maps
* 数据集合
*/
public static void mapsMoveChangeOrderNum(int nowNum, int moveNum, Map<Integer, String> maps) {
int num = nowNum - moveNum;
if (num == 0)
return;
if (num > 0) {// 正数———>节点向上移动
for (int i = moveNum - 1; i < nowNum; i++) {
if (nowNum == i + 1) {
continue;
}
System.out.println(maps.get(i + 1) + "--->" + (i + 2));// 需要操作的节点
}
} else {
num = Math.abs(num);// 负数 ———>节点向下移动
for (int i = nowNum; i < moveNum; i++) {
System.out.println(maps.get(i + 1) + "--->" + (i));// 需要操作的节点
}
}
System.out.println(maps.get(nowNum) + "--->" + (moveNum));// 修改当前节点
}
/**
* 移动节点,排序号进行重新排序,只对需要操作的节点进行操作(前提:lists集合的数据是从小到大升序排列)
*
* @param nowNum
* 当前节点排序号
* @param moveNum
* 移动至第几位
* @param maps
* 数据集合
*/
public static void listMoveChangeOrderNum(int nowNum, int moveNum, List<String> lists) {
int num = nowNum - moveNum;
if (num == 0)
return;
if (num > 0) {// 正数———>节点向上移动
for (int i = moveNum - 1; i < nowNum; i++) {
if (nowNum == i + 1) {
continue;
}
System.out.println(lists.get(i) + "--->" + (i + 2));// 需要操作的节点
}
} else {
num = Math.abs(num);// 负数 ———>节点向下移动
for (int i = nowNum; i < moveNum; i++) {
System.out.println(lists.get(i) + "--->" + (i));// 需要操作的节点
}
}
System.out.println(lists.get(nowNum-1) + "--->" + (moveNum));// 修改当前节点
}
}
运行结果:
b--->1
c--->2
d--->3
e--->4
a--->5
-------------------------------
2--->1
3--->2
4--->3
5--->4
1--->5