Java找出列表相同元素中间的数据

it2023-04-02  76

Java找出列表相同元素中间的数据

package com.cj.cgv.array; /** * create by huangziqideveloper@gmail.com */ public class ArrayTest { private static int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 6, 4, 6}; public static void main(String[] args) { int repect[] = getRepeatValueByArray(arr); itar(repect); for (int i = 0; i < repect.length; i++) { if (repect[i] != 0) { int count = getNumberCount(arr,repect[i]); System.out.println(repect[i]+"出现次数---"+count); for (int j = 1; j <= count; j++) { int index = getIndex(arr, repect[i],j); System.out.println(repect[i]+"第"+j+"次出现的下标"+index); if (count-j>=1){ if (arr[index] == arr[index + 2]) { System.out.println(arr[index] + "中间的数字" + arr[index+1]); } } } repect = delRepect(repect,repect[i]); } } } private static int getNumberCount(int array[], int number) { int count = 0; for (int i = 0; i < array.length; i++) { if (array[i] == number) { count++; } } return count; } private static int getIndex(int array[], int number,int index) { int count = 0; for (int i = 0; i < array.length; i++) { if (array[i] == number) { count++; if(count==index){ return i; } } } return 0; } private static void itar(int[] array) { for (int i = 0; i < array.length; i++) { if (array[i] != 0) { System.out.println(array[i]); } } } private static int[] delRepect(int array[],int number){ for (int i = 0; i < array.length; i++) { if (array[i]>0){ if (array[i] == number){ array[i] =0; } } } return array; } private static int[] setRepeat(int[] repeat, int val) { for (int i = 0; i < repeat.length; i++) { if (repeat[i] == 0) { repeat[i] = val; break; } } return repeat; } private static int[] getRepeatValueByArray(int[] array) { int[] repeat = new int[20]; int count = 0; //记录元素出现次数 for (int i = 0; i < array.length; i++) { for (int j = i; j < array.length; j++) { if (array[i] == array[j]) { count++; if (count > 1) { repeat = setRepeat(repeat, array[i]); debug("数字" + array[i] + "有重复"); break; } } } count = 0; } return repeat; } private static void debug(String msg) { System.out.println(msg); } }
最新回复(0)