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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你媚你魅你 初级黑马   /  2014-7-28 17:01  /  1581 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}

6 个回复

倒序浏览
将数组装进集合中操作,楼主,附带送了个功能,输出的结果还把集合排序了下
  1. package cn.demo;

  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collection;
  5. import java.util.HashSet;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.ListIterator;
  9. import java.util.Set;

  10. //数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
  11. public class Demo01 {
  12.         public static void main(String[] args) {
  13.                 int[] arr = {4,2,4,6,1,2,4,7,8};
  14.                 List<Integer> al = new ArrayList<Integer>();
  15.                 for(int i : arr){
  16.                         al.add(i);
  17.                 }
  18.                 Set<Integer> set = new HashSet<Integer>();
  19.                 set.addAll(al);
  20.                 System.out.println(set);
  21.         }
  22. }
复制代码
回复 使用道具 举报
  1. import java.util.*;
  2.   public class T {
  3.       public static void main(String[] args){
  4.          
  5.          //定义两个动态数组,a作为原始数组,b为去重数组
  6.          ArrayList<Integer> a = new ArrayList<Integer>();
  7.          ArrayList<Integer> b = new ArrayList<Integer>();
  8.          Scanner inp = new Scanner(System.in);
  9.        //输入数组元素
  10.          while(inp.hasNext()){
  11.              int t = inp.nextInt();
  12.              //当输入为-1时表示输入结束
  13.              if (t == -1) break;
  14.             else a.add(t);
  15.          }
  16.         //去重复制入b中
  17.          for(Iterator it = a.iterator();it.hasNext();){
  18.              int nex = (int)it.next();
  19.              if(!b.contains(nex)) b.add(nex);            
  20.          }
  21.          //打印去重结果b
  22.          for(Iterator it = b.iterator();it.hasNext();){
  23.             System.out.print((int)it.next()+" ");
  24.          }
  25.      }
  26. }
复制代码



键盘输入数组元素


有个缺点:如果数组元素中有-1就不行了
回复 使用道具 举报
  1. package cn.test;

  2. import java.util.LinkedHashSet;
  3. import java.util.Set;

  4. /*
  5. * 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
  6. */
  7. public class Test6 {
  8.         public static void main(String[] args) {
  9.                 int[] arr={4,2,4,6,1,2,4,7,8};
  10.                 // LinkedHashSet可以保证数据的顺序不变
  11.                 Set<Integer> set=new LinkedHashSet<Integer>();
  12.                 //排重
  13.                 for (int i : arr) {
  14.                         set.add(i);
  15.                 }
  16.                 // 得到获得的数组
  17.                 Integer[] arr2=set.toArray(new Integer[set.size()]);
  18.                 //遍历数组
  19.                 for (int i = 0; i < arr2.length; i++) {
  20.                         System.out.println(arr2[i]);
  21.                 }
  22.         }
  23. }
复制代码
回复 使用道具 举报
集合就哦了
回复 使用道具 举报
呜呜,我没看懂啊.说明我基础不行啊.再去看视频把.
回复 使用道具 举报
路过进来看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马