A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sql26 初级黑马   /  2015-10-24 22:40  /  375 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何把数组中的元素弄不重复

5 个回复

倒序浏览
可以用遍历找到数组中的重复元素,然后把一个替换掉。
回复 使用道具 举报
  1. package com.itheima;

  2. import java.util.ArrayList;

  3. /**
  4. * 6、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
  5. *
  6. * @author baip
  7. *
  8. */
  9. public class Test06 {
  10.         public static void main(String[] args) {
  11.                 // 创建一个数组
  12.                 int[] arr = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };
  13.                 // 数组去重复前
  14.                 System.out.println("数组去重复前:");
  15.                 printArray(arr);
  16.                 // 调用数组去重复的功能
  17.                 int[] arr2 = quChong(arr);
  18.                 // 数组去重复后
  19.                 System.out.println("数组去重复后:");
  20.                 printArray(arr2);

  21.         }

  22.         // 遍历数组功能
  23.         public static void printArray(int[] arr) {
  24.                 System.out.print("[");               
  25.                 for (int i = 0; i < arr.length; i++) {
  26.                         if (i != arr.length - 1) {
  27.                                 System.out.print(arr[i] + ",");
  28.                         } else {
  29.                                 System.out.print(arr[i] + "]");
  30.                         }
  31.                 }
  32.                 System.out.println();        //数组遍历完就换行
  33.         }

  34.         // 数组去重功能
  35.         public static int[] quChong(int[] arr) {
  36.                 //创建一个ArrayList集合对象
  37.                 ArrayList<Integer> list = new ArrayList<Integer>();
  38.                 //遍历传进来的数组,获取每一个数组元素
  39.                 for (int n : arr) {
  40.                         //如果list集合不存在该元素,就把该元素添加到集合;如果存在,则不添加
  41.                         if (!list.contains(n)) {
  42.                                 list.add(n);
  43.                         }
  44.                 }
  45.                 //创建一个新的数组用于存储集合内的元素,所以数组的长度和list集合的长度相同
  46.                 int[] arr2 = new int[list.size()];
  47.                 //遍历list集合并把list集合的元素复制给数组arr2的对应外置
  48.                 for (int i = 0; i < list.size(); i++) {
  49.                         arr2[i] = list.get(i);
  50.                 }
  51.                 //返回去重后的数组
  52.                 return arr2;
  53.         }

  54. }
复制代码


回复 使用道具 举报 1 0
楼上正解
回复 使用道具 举报
有很多方法,上面的已经说得很清楚了,我说一个其他不一样的吧。把元素遍历添加到hashmap中,脚标是key,数值是vaules
回复 使用道具 举报
jlq 中级黑马 2015-10-25 14:15:35
地板
zhichi  zhichi
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马