急!!有一个数据集是String[]数组,其中有很多元素的内容是重复的,怎样新建一个数据集只保存其中不重复的记录。谢谢!!

解决方案 »

  1.   

    假如不用数组,而用一个java的结果集类
    比如vector collection arraylist map 等等类
    是否本身有此功能呢?
    比如自己带有排序的函数,或者带有取出相同记录中的其中一条的函数呢?
      

  2.   

    用java map 类就可以的啊 。把你的string[] 一个一个的放到map里取,map.put(String[i],String[i]);放之前要测试一下这个至值是不是已经存在;map.contasins(String[i]);
      

  3.   

    简洁高效的!
    String[] arr=(String[]) new HashSet().addAll(Arrays.asList(oldArr)).toArray(new String[0]);
      

  4.   

    treeroot(旗鲁特)  老兄,
    你那句似乎不通过阿。后面的括号位置可能有问题,我还没找到.
      

  5.   

    Set set=new HashSet();
    set.addAll(Arrays.asList(oldArr));
    String[] arr=(String[]) set.toArray(new String[0]);
      

  6.   

    也可以把数组导入数据库,通过sql语句distinct处理,简单易懂,只不过需要连数据库.呵呵
      

  7.   

    放到HashSet里不就可以了嘛!当然TreeSet也是可以的。
      

  8.   

    我想问一下,放在hashset里 来解决 相同内容的记录只取一条的做法,是不是只有对 数字 类型的内容才有用,而对于汉字字符串 就不能了?比如数据集中有多条“北京” 能只取其中一条吗?我试了似乎不行。
      

  9.   

    这些都是基本的数据结构在java中的应用
    to wangx1949() 
    这个你都想的出来?真是佩服
      

  10.   

    使用TreeSet是绝对不可取的,效率很低(因为TreeSet是排序的),时间复杂度是o(n*logn)
    使用HashSet的时间复杂度是 o(n)
    如果有1000条数据的话,TreeSet需要花10倍以上的时间(这只是乐观估计)
    使用排序的方式可能比TreeSet更慢一些,不过复杂度是一样的(因为java中的sort是快速排序)HashSet使用哈西表(当然对equals和hashCode方法有要求了),字符串当然不会有问题!
      

  11.   

    可以了,刚才是我不小心写错了一处。
    我也想问一下set.toArray(new String[0]);
                set.toArray();
    到底有什么样的区别?
      

  12.   

    先把分给了,谢谢treeroot(旗鲁特)老兄.我要发奋学习java基础了.什么框架,什么开源阿,基础不好都是扯淡.开始学基础!!!
      

  13.   

    为何不看API呢?
    前者让它返回String[]类型
    后者返回的是 Object[]
      

  14.   

    谢谢.我的java基础太差了.从此不敢说会java