diff --git a/src/main/java/MoveZeroes/jackjson/MoveZeroesDemo.java b/src/main/java/MoveZeroes/jackjson/MoveZeroesDemo.java new file mode 100644 index 0000000..5f07d19 --- /dev/null +++ b/src/main/java/MoveZeroes/jackjson/MoveZeroesDemo.java @@ -0,0 +1,39 @@ +package MoveZeroes.jackjson; + +import java.util.*; + +public class MoveZeroesDemo { + + public static Integer[] getNewArray(Integer[] array){ + //数组转集合操作, 但是有一个缺陷, 返回的是一个Arrays的静态内部类,其中并没有实现add,remove方法 + List list = Arrays.asList(array); + // 创建一个list + list = new ArrayList(list); + // 定义一个标志, 用于记录有几个0存在 + int flag = 0; + for(int i = 0; i < list.size(); i++) { + if(0 == list.get(i)){ + list.remove(i); + // 防止漏标记, 漏删除 + i--; + flag++; + } + } + // 有 0 存在的情况下再做操作 + if(flag > 0){ + for (int i = 0; i< flag; i++){ + list.add(0); + } + } + // 集合转数组 等到记过并返回 + array = list.toArray(new Integer[list.size()]); + return array; + } + + + public static void main(String[] args) { + Integer[] array = {0,1,0,3,12}; + Integer[] newArray = getNewArray(array); + System.out.println(Arrays.toString(newArray)); + } +}