黑马程序员技术交流社区

标题: 数组如何去重排序 [打印本页]

作者: 江峰渔火    时间: 2014-6-14 15:47
标题: 数组如何去重排序
java中数组如何去重排序
作者: 江峰渔火    时间: 2014-6-14 15:59
补充:两个长度不相等,无序的数组,如int[]  str={2,10,6,8,3}; int[] str2={10,8,7,1,4}; 怎样用最优的方法实现两个数组合并去重排序
作者: Boiled_Water    时间: 2014-6-14 16:04
把数组中的数据添加到一个treeset集合中
作者: HKing    时间: 2014-6-14 17:03
本帖最后由 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. }
复制代码




作者: 倪大大    时间: 2014-6-14 18:50
这个得用到集合.如果你刚开始自学 那还是先听完吧
作者: GoodBoy123    时间: 2014-6-14 19:14
本帖最后由 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. }
复制代码







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