您的位置:首页 > 编程语言 > Java开发

java对字符串进行去重并排序

2016-07-20 20:06 453 查看
题目来源:牛客网-华为机试训练第三题(明明的随机数)

输入例子:

11 //总数量
10
20
40
32
67
40
20
89
300
400
15

输出例子:

10
15
20
32
40
67
89
300
400


分析:这题涉及到java对输入数组的去重和排序,方法有如下两种

方法一:首先对输入的一组数进行排序,使相同的数相邻。然后从前往后两两比较相邻的数,将各个数存入结果数组,相同的数则跳过。代码如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class test3 {

public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
int n = cin.nextInt();
int number[] = new int
;
for (int i = 0; i < n; i++){

number[i] = cin.nextInt();

}

Arrays.sort(number);//排序

List<Integer> result = new ArrayList<Integer>(); //用ArrayList 存储结果

result.add(number[0]);

for (int i = 1; i < number.length - 1; i++){ //去重

if(number[i] != number[i - 1]){

result.add(number[i]);

}

}

if (number[number.length - 1] != number[number.length - 2]){ //处理数组中最后一个数字
result.add(number[number.length - 1]);
}

for (int i = 0; i < result.size(); i++){ //输出结果

System.out.println(result.get(i));

}

}

}
}


方法二:输入数据时用TreeSet接收,然后输出,结果就是去重的并且排序好了。这是由于TreeSet的特点,代码看起来就简单得多。代码如下:

import java.util.Scanner;
import java.util.TreeSet;

public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){

TreeSet<Integer> set=new TreeSet<Integer>();
int n=sc.nextInt();
if(n>0){
for(int i=0;i<n;i++){
set.add(sc.nextInt());
}
}
for(Integer i:set){
System.out.println(i);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息