您的位置:首页 > 编程语言 > Java开发

如何在一维数组中查找某重复元素,并输出其位置?用java实现

2018-07-10 22:33 405 查看
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());
    }
} 阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐