【发布时间】:2018-01-30 01:05:55
【问题描述】:
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;
public class JMUnit2Ch10
{
public static void main(String[] args)
{
ArrayList<Integer> randomNumbers = new ArrayList<>();
System.out.print("How many random numbers between 1 and 100:");
Scanner stdIn = new Scanner(System.in);
int numOfNumbers = stdIn.nextInt();
for(int i=0; i<numOfNumbers; i++)
{
randomNumbers.add((int)(Math.random()*100)+1);
}
System.out.print("Which random number are your searching for?:");
int searchNumber = stdIn.nextInt();
System.out.printf("%n");
for(int a: randomNumbers)
{
System.out.println("Unsorted List");
System.out.println(searchNumber + " found at location: "+ randomNumbers.indexOf(searchNumber));
}
Collections.sort(randomNumbers);
for(int b:randomNumbers)
{
System.out.println("Sorted List");
System.out.println(searchNumber + " found at location: "+ randomNumbers.indexOf(searchNumber));
}
System.out.println(randomNumbers.stream().mapToInt(value -> value).sum());
}
}
我尝试使用布尔值来仅显示我使用的代码是否为:
boolean found = false;
然后在我输入的两个打印语句中:
found=true;
在底部放置:
if(!found)
{
System.out.println(randomNumbers.stream().mapToInt(value -> value).sum());
}
并且仍然为每个循环的每次迭代获得输出。我想要做的是在ArrayList 中为每个时间获取单个输出,该数字出现在已排序和未排序的ArrayLists 中,然后是数组列表中所有数字的总和。
Edit1:我得到的当前输出是searchNumber,它代表有多少个数字,所以它输出x 的时间量,其中x 是numOfNumers。我希望它只输出它在两个数组中出现的次数。
编辑2:
由于建议我不要使用图片,因此我希望它显示:
1到100之间有多少个随机数:1000
你在搜索哪个随机数?:5
未排序的列表 5 发现地点:502 5 发现地点:725 5 发现地点:856 5 个在位置找到:924
排序列表 5 发现地点:40 5 发现地点:41 5 发现地点:42 5 个在位置找到:43
所有数字的总数:49089
我得到的是 未排序的列表 5 在位置 502 X1000 找到 排序列表 在位置 41 X1000 找到 5 个
所有数字的总数:42013
【问题讨论】:
-
"数字出现在排序和未排序的 ArrayLists 中" 嗯..两者都有相同的元素所以..只是顺序不同,你是什么意思?
-
我将发布所需与当前的图片以供进一步澄清@azro
-
“我将发布想要的与当前的图片以供进一步澄清” 请不要,不需要图片。您可以根据需要编写文本作为输出...
标签: java loops arraylist foreach iteration