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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 江峰渔火 中级黑马   /  2014-6-14 15:47  /  1298 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中数组如何去重排序

5 个回复

倒序浏览
补充:两个长度不相等,无序的数组,如int[]  str={2,10,6,8,3}; int[] str2={10,8,7,1,4}; 怎样用最优的方法实现两个数组合并去重排序
回复 使用道具 举报
把数组中的数据添加到一个treeset集合中
回复 使用道具 举报
本帖最后由 HKing 于 2014-6-14 17:04 编辑

把数组放到一个TreeSet中,会自动去重复并排序的。
而且,你也可以根据需要覆写compareTo()方法实现自定义排序。
排序代码如下:
  1. import java.util.*;

  2. public class Test {
  3.     public static void main(String[] args) {
  4.         int[] str1 = {2, 10, 1, 6, 8, 3};
  5.                 int[] str2 = {10, 8, 7, 1, 4};
  6.                
  7.                 TreeSet<Integer> ts = new TreeSet<Integer>();
  8.                 //将数组str1放进TreeSet中
  9.                 for (int i=0; i<str1.length; i++)
  10.                 {
  11.                         ts.add(new Integer(str1[i]));
  12.                 }
  13.                 //将数组str2放进TreeSet中
  14.                 for (int i=0; i<str2.length; i++)
  15.                 {
  16.                         ts.add(new Integer(str2[i]));
  17.                 }

  18.                 Iterator it = ts.iterator();
  19.                 //输出
  20.                 while (it.hasNext())
  21.                 {
  22.                         System.out.println(it.next());
  23.                 }

  24.     }
  25. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
这个得用到集合.如果你刚开始自学 那还是先听完吧
回复 使用道具 举报
本帖最后由 GoodBoy123 于 2014-6-14 19:39 编辑
  1. 不用集合也能做:
  2. <DIV class=blockcode>
  3. <BLOCKQUOTE>public class Test {
  4. public static void main(String args [])
  5. {
  6. int str1[] = {2,9,6,8,3,4,2,6,7,0};
  7. int str2[] = {10,8,7,1,4,5,2,1,9,26};

  8. int size = str1.length + str2.length; //新数组的长度
  9. int str [] = new int [size];
  10. int index = 0;
  11. for(int i = 0; i < size; i++) //把两个数组都复制到新数组里.
  12. {
  13. if(i < str1.length) //复制str1到新数组
  14. str[i]= str1[i];
  15. else
  16. {
  17. if(index < str2.length)
  18. str[i] = str2[index++];

  19. } //复制str2到新数组
  20. }
  21. Arrays.sort(str); //API里的排主法

  22. //打印出来看看

  23. for(int i = 0; i < str.length; i++)
  24. {
  25. System.out.println(str[i]);
  26. }
  27. }
  28. }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马