在Java中,如何在数组列表中定位输入的整数值?

在Java中,如何在数组列表中定位输入的整数值?,java,arrays,arraylist,Java,Arrays,Arraylist,这是我的第一个问题:制作一个程序,允许用户输入一个要在列表3中搜索的整数值。您的程序应该显示输入的整数值是否在列表3中找到,其中有多少在列表3中,以及它们在列表3中的位置是什么 差不多完成了,唯一的问题是我无法理解示例中给出的书面输出: 清单1:1235785694 清单2:21143214202 清单3:34 6 8 9 9 8 9 6 要在列表3中搜索的输入值:9 值9在列表3中 清单3中有4个 位于:列表3[4],列表3[5],列表3[6],列表3[8] 这是我的输出: 清单1:12357

这是我的第一个问题:制作一个程序,允许用户输入一个要在列表3中搜索的整数值。您的程序应该显示输入的整数值是否在列表3中找到,其中有多少在列表3中,以及它们在列表3中的位置是什么

差不多完成了,唯一的问题是我无法理解示例中给出的书面输出:

清单1:1235785694

清单2:21143214202

清单3:34 6 8 9 9 8 9 6

要在列表3中搜索的输入值:9

值9在列表3中

清单3中有4个

位于:列表3[4],列表3[5],列表3[6],列表3[8]

这是我的输出:

清单1:1235785694 清单2:21143214202 清单3:34 6 8 9 9 8 9 6

要在列表3中搜索的输入值:9

值9在列表3中

清单3中有4个

地址:4

如何显示位于:的,如示例中所示

编辑 对不起,我对这里和编程都是新手。这是我的代码:

导入java.util.ArrayList; 导入java.util.Scanner; 公共类列表2示例 { 公共静态无效字符串[]args { int list1[]=新int[10]; int list2[]=新int[10]; int list3[]=新int[10]; 字符串输入=; int i,x,num=0,count=0; 布尔值=false; ArrayList arr=新的ArrayList 10; 扫描仪输入=新的ScannerSystem.in; 因为i=0;i<10;i++ { 列表1[i]=0; } 因为i=0;i<10;i++ { System.out.printList 1[+i+]:; 尝试 { 列表1[i]=in.nextInt; } 卡奇 { 系统。输出。打印错误!; } } 因为i=0;i<10;i++ { 列表2[i]=0; } 因为i=0;i<10;i++ { System.out.printList 2[+i+]:; 尝试 { 列表2[i]=in.nextInt; } 卡奇 { 系统。输出。打印错误!; } } System.out.printlist1:; 因为i=0;i<10;i++ { System.out.printlist1[i]+\t; } System.out.println; System.out.printlist2:; 因为i=0;i<10;i++ { System.out.printlist2[i]+\t; } System.out.println; System.out.printlist3:; 因为i=0;i<10;i++ { list3[0]=list1[0]+list2[0];list3[1]=list1[1]+list2[1];list3[2]=list1[2]+list2[2]; list3[3]=list1[3]+list2[3];list3[4]=list1[4]+list2[4];list3[5]=list1[5]+list2[5]; list3[6]=list1[6]+list2[6];list3[7]=list1[7]+list2[7];list3[8]=list1[8]+list2[8]; list3[9]=list1[9]+list2[9]; System.out.printlist3[i]+\t; } System.out.println; 要在列表3中搜索的System.out.printInput值:; x=in.nextInt; arr.addlist3[0]; arr.addlist3[1]; arr.addlist3[2]; arr.addlist3[3]; arr.addlist3[4]; arr.addlist3[5]; arr.addlist3[6]; arr.addlist3[7]; arr.addlist3[8]; arr.addlist3[9]; 对于int n:list3 { 如果n==x { 发现=真; 打破 } } 对于i=0;i<10;i++ { 如果列表3[i]==x { 计数++; } } 对于整数值:arr {} int pos=arr.indexOfx; 发现 System.out.println值+x+位于列表3!; 其他的 System.out.println值+x+位于列表3!; System.out.PRINTLn列表3中有+个计数+个。; System.out.PrintLn位于:+pos; } } 将只返回数组中值的第一个外观,如果需要,可以补充第二个参数,告诉Java从何处开始查找字符,如下所示:

但是,在您的情况下,使用基于索引的循环遍历数组中的所有元素,然后在找到匹配字符时记录位置要容易得多,如下所示:

for(int i = 0; i < arr.length; i++){ // loop through all indices of the array, starting from 0, end at arr.length - 1
    if(arr[i] == ch){ // arr[i] is each character in the array at index i, ch is the target character you're matching against
        System.out.println("Character found at position " + i);
    }
}

假设list3是一个整数列表,然后使用java8流

    String locations=IntStream.range(0,list3.size())
                           .filter(i->list3.get(i)==userInput)
                           .map(index->"list3["+index+"]")
                           .collect(Collectors.joining(","));

    Int occurences=locations.split(","). length;

    if(occurences>0){System.out.println(userInput +"occurred" + occurences +" Times +" at locations "+locations);}
   else{System.out.println(userInput +"Was not found");}

请在您的应用程序中显示您的代码question@tgdavies嗨,谢谢你提醒。我已经编辑了我的帖子并包含了我的代码。我已经编辑了我的帖子并包含了我的代码。我像java6一样使用,它应该与我的代码兼容吗?java streams是从7开始引入的。恐怕您必须升级