示例 - 输入(10,20,30,10,50)输出(10,20,30,50)
import static java.lang.System.*;
import java.util.*;
public class Uni
{
public static void main(String[]args)
{
Scanner sc=new Scanner(in);
int[]a=new int[5];
for(int i=0;i<a.length;i++)
{
out.println("Please type a number");
a[i]=sc.nextInt();
}
int temp;
boolean flag = true;
while ( flag )
{
flag= false;
for(int j=0;j<a.length-1;j++)
{
if ( a[ j ] > a[j+1] )
{
temp = a[ j ];
a[ j ] = a[ j+1 ];
a[ j+1 ] = temp;
flag = true;
}
}
}
for(int i=0;i<a.length;i++)
{
if(i==0){
out.print(a[i]+" ");
}else{
if(a[i]!=a[i-1]){
out.print(a[i]+" ");
}
}
}
}
}
这是我的代码..但我想在不进行排序的情况下这样做?强烈建议不要使用默认方法!
答案 0 :(得分:0)
如果您想使用Set ...
Set<Integer> mySetNoDuplicates = new HashSet<Integer>(Arrays.asList(a));
for(Integer currentInt : mySetNoDuplicates){
System.out.println(currentInt);
}
答案 1 :(得分:0)
写一个函数来检查我们是否要打印这个数字怎么样?这样您就不需要对输入的数组进行排序。此外,没有使用内置方法。
import static java.lang.System.*;
import java.util.*;
public class Uni {
public static boolean isContain(int[] src, int end, int value) {
int start;
for (start = 0; start < end; start++) {
if (src[start] == value) {
return true;
}
}
return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(in);
int[] a = new int[5];
for (int i = 0; i < a.length; i++) {
out.println("Please type a number");
a[i] = sc.nextInt();
}
for (int i = 0; i < a.length; i++) {
if (i == 0) {
out.print(a[i] + " ");
} else {
if (!isContain(a, i, a[i])) {
out.print(a[i] + " ");
}
}
}
}
}
输入:
10,20,30,10,50
输出:
10,20,30,50