黑马程序员技术交流社区

标题: 数组去重复,结果出来了,请问我的程序还能优化吗? [打印本页]

作者: 陈培果    时间: 2014-5-9 20:30
标题: 数组去重复,结果出来了,请问我的程序还能优化吗?
本帖最后由 陈培果 于 2014-5-10 08:55 编辑
  1. /**
  2. * 5、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
  3. */
  4. import java.util.*;
  5. public class Test5
  6. {

  7.                          public static void main(String[] args)
  8.                         {
  9.                 //定义一个数组并赋值
  10.                 int[] arr = new int[]{4,2,4,6,1,2,4,7,8};
  11.                 //定义一个容器集合
  12.                ArrayList<Integer> al = new ArrayList<Integer>();
  13.                 //将数组中不重复的元素添加进入容器
  14.                                 for (int i = 0; i < arr.length; i++)
  15.                                 {
  16.                                         if (!al.contains(arr[i]))
  17.                        al.add(arr[i]);   
  18.                 }
  19.                                 Iterator<Integer> it=al.iterator();//定义一个迭代器并打印
  20.                                 sop("{");
  21.                                 for (int i=0;i<al.size()-1 ;i++)
  22.                                 {
  23.                                         sop(it.next()+",");
  24.                                        
  25.                                 }
  26.                                 sop(it.next());
  27.                                 sop("}");
  28.                         }
  29.                         public static void sop(Object obj )//实现打印功能的小程序,减少代码。
  30.                         {
  31.                                 System.out.print(obj);
  32.                         }

  33. }
复制代码



作者: 曹冬明    时间: 2014-5-9 20:59
本帖最后由 曹冬明 于 2014-5-9 21:04 编辑
  1. package com.itheima;

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

  4. public class ArrayDemo {

  5.         public static void main(String[] args) {
  6.                 Integer[] arr = new Integer[]{4,2,4,6,1,2,4,7,8};
  7.                 String[] arr1 = new String[]{"a","a","b","bc","b","abc"};                        
  8.                
  9.                 printArray(rdDup(arr));
  10.                 printArray(rdDup(arr1));
  11.         }

  12.         private static void printArray(Object[] arr1) {
  13.                 System.out.print("{");
  14.                 for (int i = 0; i < arr1.length; i++) {
  15.                         if(i!=arr1.length-1)
  16.                                 System.out.print(arr1[i]+",");
  17.                         else
  18.                                 System.out.println(arr1[i]+"}");
  19.                 }
  20.         }
  21.         
  22.         public static Object[] rdDup(Object[] obj){
  23.                 Set<Object> set = new HashSet<Object>();
  24.                
  25.                 for (int i = 0; i < obj.length; i++) {
  26.                         set.add(obj[i]);
  27.                 }
  28.                 return set.toArray();
  29.         }
  30. }
复制代码
我刚写的,比你的麻烦一点

作者: 陈培果    时间: 2014-5-9 21:39
曹冬明 发表于 2014-5-9 20:59
我刚写的,比你的麻烦一点

恩,我想把我程序后面的打印弄简单一点,打印结果花了我四句话
作者: 曹冬明    时间: 2014-5-9 21:53
陈培果 发表于 2014-5-9 21:39
恩,我想把我程序后面的打印弄简单一点,打印结果花了我四句话

封装成方法,看起来就没那么乱了
作者: 陈培果    时间: 2014-5-9 22:06
曹冬明 发表于 2014-5-9 21:53
封装成方法,看起来就没那么乱了

恩,这个倒是是
作者: 陈培果    时间: 2014-5-9 22:12
陈培果 发表于 2014-5-9 22:06
恩,这个倒是是

你技术分好多,怎么挣的啊,
作者: 一万    时间: 2015-1-8 20:50
封装成方法,看起来就没那么乱了?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2