如何仅在数组,Java编程中显示不同的值

时间:2017-09-30 02:13:30

标签: java arrays

这是我的帖子,我想知道如何删除已经输入的数组中的元素。星期一到期的作业。控制台将以不同的方式打印输入的所有值,这意味着它只会打印仅输入一次的值。

系统将提示人们输入十次“输入整数”消息,系统将获取这些值并删除任何重复项,但仅显示输入的两个中的一个。 I.E如果输入17两次,则仅显示前17个。

所以这是我到目前为止的代码

    import java.util.Scanner;   
    import java.util.Arrays;



public class Unit03Prog2 {

public static void main(String[] args) {
  //Array
int Numbers[] = new int[10];


Scanner Numb = new Scanner(System.in);

for(int i=0; i < Numbers.length; i++){

System.out.print("Enter an integer: "); 

      //Stores it, and moves to the next line         
     Numbers[i]= Numb.nextInt();



//Removes duplicates

//Code to remove duplicates goes here VVVV




//Ends it if i = 10
if(i == Numbers.length)
{
        break;

    }





//End of for statement

}

System.out.println("The number of distinct values is  " + Arrays.toString(Numbers)); 



//end of main method

}


//end of Class

}

所以代码可以工作,除了它之外,它显示了无论输入的每个值。我只需要输入一次的数字

Enter an integer : 11
Enter an integer : 12
Enter an integer : 13
Enter an integer : 14
Enter an integer : 15
Enter an integer : 16
Enter an integer : 16
Enter an integer : 17
Enter an integer : 19
Enter an integer : 19

应该说不同值的数量是11 12 13 14 15 16 17 19

谢谢你们, 约书亚。

4 个答案:

答案 0 :(得分:1)

您可以使用<div class="image"> <img src="your_main_image"/> </div> .image{ background-image: url('your_placeholder_image'); } 来解决它:

Set

答案 1 :(得分:0)

是的,使用仅包含唯一元素的集合来实现您的目的。

也许您需要保留输入序列,但Set不会保留序列。 我想你想要一个逻辑来删除数组中的重复记录,对吧? 试试这个:

import java.util.HashSet;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Set;


public class Main {

    public static void main(String[] args) {
        //Array
        int Numbers[] = new int[10];         
        Set<Integer> integerSet = new HashSet<>();
        Scanner Numb = new Scanner(System.in);
        for(int i=0; i < Numbers.length; i++){
            System.out.print("Enter an integer: ");
            //Stores it, and moves to the next line
            Numbers[i]= Numb.nextInt();           
            integerSet.add(new Integer(Numbers[i]));             
        }
        //Array to keep unique items with same sequence of input
        int uniqueNumbers[] =  new int[integerSet.size()];
        integerSet= new HashSet<>();
        for(int i=0;i<Numbers.length;i++){
            if(!integerSet.contains(Numbers[i])){
                uniqueNumbers[integerSet.size()]=Numbers[i];
                integerSet.add(Numbers[i]);
            }
        }
        System.out.println("The number of distinct values is  " + Arrays.toString(uniqueNumbers));

    }

答案 2 :(得分:0)

替换代码以删除重复项。我建议在插入数组之前检查重复项。如果输入的数字是重复的,请跳过它并阅读下一个输入。

@Service
public class ResourceResolverImpl implements LSResourceResolver {
private ILoadFromSRService iLoadFromSRService;

@Autowired
public ResourceResolverImpl(ILoadFromSRService iLoadFromSRService){
    this.iLoadFromSRService = iLoadFromSRService;
}

public LSInput resolveResource(String type,
                               String namespaceURI,
                               String publicId,
                               String systemId,
                               String baseURI) {
    String string =iLoadFromSRService.getServiceBaseTypeSchema();
    string = string.replace("\n", "").replace("\t", "");
    InputStream resourceAsStream = new ByteArrayInputStream( string.getBytes());
    return new LSInputImpl(publicId, systemId, resourceAsStream);
    }
}

答案 3 :(得分:0)

public static void main(String [] args){

    int a[] = {1,2,3,4,5,1,2};
    
    for(int i=0; i<a.length;i++) {
        int count = 0;
        for(int j=0; j<a.length;j++) {
            if(a[i]==a[j] && i!=j) {
                count++;
                break;
            }
        }
            if(count == 0) {
                System.out.println(a[i]);
                
            }
    }
}