Java 我的数组有问题,存储数字并检查是否有真假
Java problem in my array, storage numbers and check if there are true or false
我的数组有问题。
这个想法很简单,我在数组中存储填充数字,我需要搜索这些数字,可以是一个或多个数字,如果我存储的数字存在,我想得到答案,如果不存在,则告诉我 True 或 False .
当方法检查 True 时它工作,但是当检查 false 时它不像 true 那样工作,为什么?
这是代码:
public static void main(String[] args) {
int[] numbers;
Scanner scanTotalOfNumbers = new Scanner(System.in);
System.out.println("How many numbers going to storage?");
numbers= new int[scanTotalOfNumbers.nextInt()];
Scanner scanNumber= new Scanner(System.in);
for(int i=0;i< numbers.length;i++){
System.out.println("Write the number.");
numbers[i]= scanNumber.nextInt();
}
System.out.println("list of all the numbers");
for(int a:numbers){
System.out.println(a);
}
int[] search;
Scanner scanNumbersToSearch = new Scanner(System.in);
Scanner scanSearch = new Scanner(System.in);
System.out.println("How many numbers you want to search?");
search= new int[scanSearch.nextInt()];
for(int i=0;i< search.length;i++){
System.out.println("write the numbers");
search[i]= scanNumbersToSearch.nextInt();
}
System.out.println("list of numbers to search");
for(int i: search){
System.out.println(i);
}
searchNumbers(numbers, search);
}
static void searchNumbers(int[] numbersIn, int... searchIn) {
for (int i: numbersIn) {
for (int a : searchIn) {
if (i == a) {
System.out.println("true " + a);
} else {
System.out.println("false " + a);
}
}
}
}
代码有很多打印件供我可视化。
为什么要这样假装?
使用数组的代码:
static void searchNumbers(int[] numbersIn, int searchIn [] ) {
for(int i=0;i<searchIn.length;i++) {
for(int j=0;j<numbersIn.length;j++) {
if(searchIn[i]==numbersIn[j]) {
System.out.println(searchIn[i]+" Exist in your array");
break ;
}
if(j==(numbersIn.length)-1) {
System.out.println(searchIn[i]+" Does not exist in your array" );
}
}
}
}
您可以将要搜索的数组元素放在 ArrayList 中,然后使用 .contains() 方法:
static void searchNumbers(int[] numbersIn, int searchIn [] ) {
List<Integer> intList = new ArrayList<Integer>(searchIn.length);
for (int i : searchIn)
{
intList.add(i);
}
for(int i : numbersIn) {
if(intList.contains(i)) {
System.out.println(i+" Exist in your array");
}
else {
System.out.println(i+" Does not exist in your array");
}
}
}
我的数组有问题。 这个想法很简单,我在数组中存储填充数字,我需要搜索这些数字,可以是一个或多个数字,如果我存储的数字存在,我想得到答案,如果不存在,则告诉我 True 或 False . 当方法检查 True 时它工作,但是当检查 false 时它不像 true 那样工作,为什么? 这是代码:
public static void main(String[] args) {
int[] numbers;
Scanner scanTotalOfNumbers = new Scanner(System.in);
System.out.println("How many numbers going to storage?");
numbers= new int[scanTotalOfNumbers.nextInt()];
Scanner scanNumber= new Scanner(System.in);
for(int i=0;i< numbers.length;i++){
System.out.println("Write the number.");
numbers[i]= scanNumber.nextInt();
}
System.out.println("list of all the numbers");
for(int a:numbers){
System.out.println(a);
}
int[] search;
Scanner scanNumbersToSearch = new Scanner(System.in);
Scanner scanSearch = new Scanner(System.in);
System.out.println("How many numbers you want to search?");
search= new int[scanSearch.nextInt()];
for(int i=0;i< search.length;i++){
System.out.println("write the numbers");
search[i]= scanNumbersToSearch.nextInt();
}
System.out.println("list of numbers to search");
for(int i: search){
System.out.println(i);
}
searchNumbers(numbers, search);
}
static void searchNumbers(int[] numbersIn, int... searchIn) {
for (int i: numbersIn) {
for (int a : searchIn) {
if (i == a) {
System.out.println("true " + a);
} else {
System.out.println("false " + a);
}
}
}
}
代码有很多打印件供我可视化。 为什么要这样假装?
使用数组的代码:
static void searchNumbers(int[] numbersIn, int searchIn [] ) {
for(int i=0;i<searchIn.length;i++) {
for(int j=0;j<numbersIn.length;j++) {
if(searchIn[i]==numbersIn[j]) {
System.out.println(searchIn[i]+" Exist in your array");
break ;
}
if(j==(numbersIn.length)-1) {
System.out.println(searchIn[i]+" Does not exist in your array" );
}
}
}
}
您可以将要搜索的数组元素放在 ArrayList 中,然后使用 .contains() 方法:
static void searchNumbers(int[] numbersIn, int searchIn [] ) {
List<Integer> intList = new ArrayList<Integer>(searchIn.length);
for (int i : searchIn)
{
intList.add(i);
}
for(int i : numbersIn) {
if(intList.contains(i)) {
System.out.println(i+" Exist in your array");
}
else {
System.out.println(i+" Does not exist in your array");
}
}
}