我需要显示列表中的最小和最大当前价格,但是我只能在最后显示数字
public StockPrice() {
char startChar = 'A';
String tmpSymbol = null;
int startPrice = 0;
int priceRightNow = 0;
for (int idx = 0; idx < MAX_STOCKS; ++idx) {
tmpSymbol = "" + (char) (startChar + idx) + (char) (startChar + idx + 1) + (char) (startChar + idx + 2);
startPrice = ThreadLocalRandom.current().nextInt(minStockPrice, maxStockPrice + 1);
priceRightNow = ThreadLocalRandom.current().nextInt(minStockPrice, maxStockPrice + 1);
myStocks[idx] = new Stock(tmpSymbol, startPrice, priceRightNow);
System.out.println(myStocks[idx]);
System.out.println();
}
int[] val = {priceRightNow};
List<Integer> myStocks = new ArrayList<Integer>();
for (Integer number : val ) {
myStocks.add(number);
}
System.out.println("The current lowest stock price is " + tmpSymbol +Collections.min(myStocks));
System.out.println("The current highest stock price is "+ tmpSymbol +Collections.max(myStocks));
}
答案 0 :(得分:0)
您正在覆盖变量。.collections.min,max应该使您的min,max值不在列表中。
public class Test {
public static void main(String args[]) {
ArrayList<Integer> integerList = new ArrayList<>();
integerList.add(10);
integerList.add(1);
integerList.add(12);
System.out.println("MIN : "+Collections.min(integerList));
System.out.println("MAX : "+Collections.max(integerList));
}
}
此示例代码将使您获得以下输出。
MIN : 1
MAX : 12
答案 1 :(得分:0)
您的val
数组包含最后一个priceRightNow
。您在上一个循环迭代中所做的一切都不相关。然后,对ArrayList
的调用将创建一个新的空列表,并将val
的(唯一)值添加到该列表中。因此,该列表的最大值和最小值为最后一个priceRightNow