public static void main(String[] args) {
Integer[] numbers={12,18,19,15,26,29,49,15,12,19,29,12,18};
//集合用来存放不重复的数字
ArrayList<Integer> numberArray=new ArrayList<>();
//嵌套集合用来存放重复数字的角标
ArrayList<ArrayList<Integer>> numberIndex=new ArrayList<>();
//集合中存放重复出现的数字
ArrayList<Integer> sameArray=new ArrayList<>();
for(int i=0;i<numbers.length;i++){//
//只遍历一遍
if(!numberArray.contains(numbers[i])){
//新数字存进集合
numberArray.add(numbers[i]);
}
else{
if(!sameArray.contains(numbers[i])){
//重复数字存进集合
sameArray.add(numbers[i]);
//在这个嵌套集合中创建存有这个数字角标的集合
ArrayList<Integer> numberHead=new ArrayList<>();
//把第一次出现该数字的角标存进集合
numberHead.add(new Integer(numberArray.indexOf(numbers[i])));
numberIndex.add(numberHead);
}
//把此次出现的该数字的角标存进集合
numberIndex.get(sameArray.indexOf(numbers[i])).add(new Integer(i));
}
}
//输出结果
for(int i=0;i<sameArray.size();i++){
System.out.println(sameArray.get(i)+"\t"+numberIndex.get(i).toString());
}
}
Integer[] numbers={12,18,19,15,26,29,49,15,12,19,29,12,18};
//集合用来存放不重复的数字
ArrayList<Integer> numberArray=new ArrayList<>();
//嵌套集合用来存放重复数字的角标
ArrayList<ArrayList<Integer>> numberIndex=new ArrayList<>();
//集合中存放重复出现的数字
ArrayList<Integer> sameArray=new ArrayList<>();
for(int i=0;i<numbers.length;i++){//
//只遍历一遍
if(!numberArray.contains(numbers[i])){
//新数字存进集合
numberArray.add(numbers[i]);
}
else{
if(!sameArray.contains(numbers[i])){
//重复数字存进集合
sameArray.add(numbers[i]);
//在这个嵌套集合中创建存有这个数字角标的集合
ArrayList<Integer> numberHead=new ArrayList<>();
//把第一次出现该数字的角标存进集合
numberHead.add(new Integer(numberArray.indexOf(numbers[i])));
numberIndex.add(numberHead);
}
//把此次出现的该数字的角标存进集合
numberIndex.get(sameArray.indexOf(numbers[i])).add(new Integer(i));
}
}
//输出结果
for(int i=0;i<sameArray.size();i++){
System.out.println(sameArray.get(i)+"\t"+numberIndex.get(i).toString());
}
}