如何仅在数组中显示不同的值,Java编程
这是我在这里的第一篇文章,我想知道如何删除数组中已经输入的元素。周一交的作业。控制台将以不同的方式打印所有输入的值,这意味着它将只打印只输入一次的值 人们将被提示“输入一个整数”十次,系统将获取这些值并删除任何重复项,但只显示输入的两个值中的一个。即,如果输入两次17,则只显示前17个 这是我到目前为止的代码如何仅在数组中显示不同的值,Java编程,java,arrays,Java,Arrays,这是我在这里的第一篇文章,我想知道如何删除数组中已经输入的元素。周一交的作业。控制台将以不同的方式打印所有输入的值,这意味着它将只打印只输入一次的值 人们将被提示“输入一个整数”十次,系统将获取这些值并删除任何重复项,但只显示输入的两个值中的一个。即,如果输入两次17,则只显示前17个 这是我到目前为止的代码 import java.util.Scanner; import java.util.Arrays; public class Unit03Prog2 { p
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
}
应该说不同值的数量是111314151719
谢谢各位,
Joshua.您可以使用
集合来解决它:
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();
//Removes duplicates
//Code to remove duplicates goes here VVVV
integerSet.add(new Integer(Numbers[i]));
if(i == Numbers.length) {
break;
}
}
System.out.println("The number of distinct values is " + Arrays.toString(integerSet.toArray()));
}
}
import java.util.HashSet;
导入java.util.Scanner;
导入java.util.array;
导入java.util.Set;
公共班机{
公共静态void main(字符串[]args){
//排列
整数[]=新整数[10];
Set integerSet=new HashSet();
扫描仪编号=新扫描仪(System.in);
for(int i=0;i
是的,请使用仅包含唯一元素的集合来实现您的目的
也许您需要保持输入的顺序,但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));
}
import java.util.HashSet;
导入java.util.Scanner;
导入java.util.array;
导入java.util.Set;
公共班机{
公共静态void main(字符串[]args){
//排列
整数[]=新整数[10];
Set integerSet=new HashSet();
扫描仪编号=新扫描仪(System.in);
for(int i=0;i 对于(int i=0;i替换代码以删除重复项。我建议在插入数组之前检查重复项。如果输入的数字重复,则跳过它并读取下一个输入
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);
int j = 0;
int inputNumber;
boolean isDuplicate;
for(int i=0; i < Numbers.length; i++){
isDuplicate = false;
System.out.print("Enter an integer: ");
//Stores it, and moves to the next line
inputNumber = Numb.nextInt();
//Removes duplicates
//Code to remove duplicates goes here VVVV //Ends it if i = 10
for (int k=0; k<j; k++) {
if(inputNumber == Numbers [k]) {
isDuplicate = true;
break;
}
}
if(! isDuplicate) {
Numbers[j++] = inputNumber;
}
//End of for statement
}
System.out.println("The number of distinct values is " + Arrays.toString(Numbers));
//end of main method
}
//end of Class
}
import java.util.Scanner;
导入java.util.array;
公共类Unit03Prog2{
公共静态void main(字符串[]args){
//排列
整数[]=新整数[10];
扫描仪编号=新扫描仪(System.in);
int j=0;
输入整数;
布尔是双的;
对于(int i=0;i
inta[]={1,2,3,4,5,1,2};
对于(inti=0;iif(i==Numbers.length){break;}
:在循环结束时是完全没有必要的;你的“for”循环已经做到了。是的,我今天意识到了,已经删除了它。哈哈,谢谢你,尽管如此,谢谢你!我非常紧张。谢谢你所有的回复,我没想到我会那么快得到答案!是的,谢谢你们所有人,你们都给出了很好的回答这正是我需要的。
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);
int j = 0;
int inputNumber;
boolean isDuplicate;
for(int i=0; i < Numbers.length; i++){
isDuplicate = false;
System.out.print("Enter an integer: ");
//Stores it, and moves to the next line
inputNumber = Numb.nextInt();
//Removes duplicates
//Code to remove duplicates goes here VVVV //Ends it if i = 10
for (int k=0; k<j; k++) {
if(inputNumber == Numbers [k]) {
isDuplicate = true;
break;
}
}
if(! isDuplicate) {
Numbers[j++] = inputNumber;
}
//End of for statement
}
System.out.println("The number of distinct values is " + Arrays.toString(Numbers));
//end of main method
}
//end of Class
}
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]);
}
}
}