![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
java 数组 相关问题 ,如何获取数组名或判断是否属于该数组
比如一个叫NUM1的数组,里面有1、2、3、4、5这几个数字,另一个叫NUM2的数组,里面包含6、7、8、9、10;能不能实现这样的算法?输入5就会显示归属于NUM1这个...
比如一个叫NUM1的数组,里面有1、2、3、4、5这几个数字,另一个叫NUM2的数组,里面包含6、7、8、9、10;能不能实现这样的算法?输入5就会显示归属于NUM1这个数组,输入9就会判断并显示属于NUM2这个数组。最好能逆查,像是看一个数组里到底包含那些内容。
展开
展开全部
给你两个解决方案
第一种:定义两个boolean变量inA,inB,初始值均为false,然后遍历数组A和B,如果输入数值在A中有相等的值,那么inA=true,如果在B中有相等的值,则inB=true。最后判断inA和inB的值就可以了,代码如下:
import java.util.Scanner;
public class OperaArray {
public static void main(String[] args) {
int[] A={1,2,3,4,5};
int[] B={6,7,8,9,10};
Integer cin=Integer.valueOf(new Scanner(System.in).next());
boolean inA=false;
boolean inB=false;
for(int i=0;i<A.length||i<B.length;i++){
if(cin==A[i]){
inA=true;
}else if(cin==B[i]){
inB=true;
}
}
if(inA==true){
System.out.println(cin+"在A数组中");
}
if(inB==true){
System.out.println(cin+"在B数组中");
}
}
方案2:使用list的contains方法:先把数组转化为列表
int[] A={1,2,3,4,5};
int[] B={6,7,8,9,10};
Integer cin=Integer.valueOf(new Scanner(System.in).next());
List<Integer> list1=new ArrayList<Integer>();
List<Integer> list2=new ArrayList<Integer>();
for(int i=0;i<A.length;i++){
list1.add(Integer.valueOf(A[i]));
}
for(int i=0;i<B.length;i++){
list2.add(Integer.valueOf(B[i]));
}
if(list1.contains(cin)){
System.out.println(cin+"在数组A中");
}else if(list2.contains(cin)){
System.out.println(cin+"在数组B中");
}else{
System.out.println(cin+"不存在于这两个数组中");
}
}
}
第一种:定义两个boolean变量inA,inB,初始值均为false,然后遍历数组A和B,如果输入数值在A中有相等的值,那么inA=true,如果在B中有相等的值,则inB=true。最后判断inA和inB的值就可以了,代码如下:
import java.util.Scanner;
public class OperaArray {
public static void main(String[] args) {
int[] A={1,2,3,4,5};
int[] B={6,7,8,9,10};
Integer cin=Integer.valueOf(new Scanner(System.in).next());
boolean inA=false;
boolean inB=false;
for(int i=0;i<A.length||i<B.length;i++){
if(cin==A[i]){
inA=true;
}else if(cin==B[i]){
inB=true;
}
}
if(inA==true){
System.out.println(cin+"在A数组中");
}
if(inB==true){
System.out.println(cin+"在B数组中");
}
}
方案2:使用list的contains方法:先把数组转化为列表
int[] A={1,2,3,4,5};
int[] B={6,7,8,9,10};
Integer cin=Integer.valueOf(new Scanner(System.in).next());
List<Integer> list1=new ArrayList<Integer>();
List<Integer> list2=new ArrayList<Integer>();
for(int i=0;i<A.length;i++){
list1.add(Integer.valueOf(A[i]));
}
for(int i=0;i<B.length;i++){
list2.add(Integer.valueOf(B[i]));
}
if(list1.contains(cin)){
System.out.println(cin+"在数组A中");
}else if(list2.contains(cin)){
System.out.println(cin+"在数组B中");
}else{
System.out.println(cin+"不存在于这两个数组中");
}
}
}
展开全部
可以,告诉你思路吧,就是首先,声明两个数组,这是必须的,后面就要利用循环,再到循环体里加入if语句,条件是:如果输入的数==num1[i],i指循环里的可变变量,条件成立就在控制台显示该数属于num1数组,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用java里面的集合来解决这个问题非常简单。就是java里面的set类。
直接就可以调用set提供的函数,来实现判断一个数是否存在等等。
直接就可以调用set提供的函数,来实现判断一个数是否存在等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class ListText {
public static void main(String[] args) {
int[] a=new int[]{1,2,3,4,5};
int[] b=new int[]{6,7,8,9,10,11};
System.out.println("请输入数字");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
for(int i=0;i<a.length||i<b.length;i++){
if(i<a.length){
if(num==a[i]){
System.out.println("该数字在a数组里");
break;
}
}else if(num==b[i]){
System.out.println("该数字在b数组里");
break;
}
}
}
}
public static void main(String[] args) {
int[] a=new int[]{1,2,3,4,5};
int[] b=new int[]{6,7,8,9,10,11};
System.out.println("请输入数字");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
for(int i=0;i<a.length||i<b.length;i++){
if(i<a.length){
if(num==a[i]){
System.out.println("该数字在a数组里");
break;
}
}else if(num==b[i]){
System.out.println("该数字在b数组里");
break;
}
}
}
}
追问
B数组无法显示结果。输入1、2、3、4、5可以显示属于数组A,输入6、7、8、9、10、11就什么都不显示了
追答
import java.util.Arrays;
import java.util.Scanner;
public class ListText {
public static void main(String[] args) {
int[] a = new int[] { 1, 2, 3, 4, 5 };
int[] b = new int[] { 6, 7, 8, 9, 10, 11 };
System.out.println("请输入数字");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
if (Arrays.binarySearch(a, num) >= 0) {
System.out.println("该数字在a数组里");
} else if (Arrays.binarySearch(b, num) >= 0) {
System.out.println("该数字在b数组里");
} else {
System.out.println("都不在");
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询