黑马程序员技术交流社区
标题:
数组如何去重排序
[打印本页]
作者:
江峰渔火
时间:
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()方法实现自定义排序。
排序代码如下:
import java.util.*;
public class Test {
public static void main(String[] args) {
int[] str1 = {2, 10, 1, 6, 8, 3};
int[] str2 = {10, 8, 7, 1, 4};
TreeSet<Integer> ts = new TreeSet<Integer>();
//将数组str1放进TreeSet中
for (int i=0; i<str1.length; i++)
{
ts.add(new Integer(str1[i]));
}
//将数组str2放进TreeSet中
for (int i=0; i<str2.length; i++)
{
ts.add(new Integer(str2[i]));
}
Iterator it = ts.iterator();
//输出
while (it.hasNext())
{
System.out.println(it.next());
}
}
}
复制代码
作者:
倪大大
时间:
2014-6-14 18:50
这个得用到集合.如果你刚开始自学 那还是先听完吧
作者:
GoodBoy123
时间:
2014-6-14 19:14
本帖最后由 GoodBoy123 于 2014-6-14 19:39 编辑
不用集合也能做:
<DIV class=blockcode>
<BLOCKQUOTE>public class Test {
public static void main(String args [])
{
int str1[] = {2,9,6,8,3,4,2,6,7,0};
int str2[] = {10,8,7,1,4,5,2,1,9,26};
int size = str1.length + str2.length; //新数组的长度
int str [] = new int [size];
int index = 0;
for(int i = 0; i < size; i++) //把两个数组都复制到新数组里.
{
if(i < str1.length) //复制str1到新数组
str[i]= str1[i];
else
{
if(index < str2.length)
str[i] = str2[index++];
} //复制str2到新数组
}
Arrays.sort(str); //API里的排主法
//打印出来看看
for(int i = 0; i < str.length; i++)
{
System.out.println(str[i]);
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2