问题解决了
我想从文件中找到最高和最低值。 我已将文件中的数字从String转换为double。如果我想使用Get方法查找最高和最低金额,我该怎么办?
答案 0 :(得分:1)
编辑:我完成了原来答案的混乱,因为我没有意识到Strings
将通过使用标准Collections()
类方法按字典顺序进行比较
因此,使用Collections()
执行此操作的最佳方法是创建自定义Comparator
Comparator<String> sort = (o1, o2) -> Double.valueOf(o1).compareTo(Double.valueOf(o2));
String max = Collections.max(numList, sort);
String min = Collections.min(numList, sort);
答案 1 :(得分:1)
你应该在从文件中读取时将数据放入arraylist。 然后使用merge或quick开始对数字进行排序。
我正在使用inbuild Collections.sort()方法。
public static void main(String[] args) {
ArrayList<String> Argument = new ArrayList<String>();
for (String item: args) {
Argument.add(item);
}
for (int i=0;i<args.length;i++) {
if (args[i].trim().equals("-H")) {
i++;
thatname = Argument.get(i);
i++;
thatage = Argument.get(i);
Human person = new Human(thatname,thatage);
System.out.println(person.getName()+" "+person.getAge());
}
这可以解决您的问题。
答案 2 :(得分:0)
Double higher = 0;
Double lower = 0;
for (String item:numList)
{
Double result = Double.parseDouble(item);
if (result>higher) { higher = result;}
if (result<lower) { lower = result;}
//Calculate the total sales for each week
total += result;
}
答案 3 :(得分:0)
public static double getMin(List<String> list) {
double min = Double.MAX_VALUE;
for (String s : list) {
double d = Double.valueOf(s);
min = min > d ? d : min;
}
return min;
}
public static double getMax(List<String> list) {
double max = Double.MIN_VALUE;
for (String s : list) {
double d = Double.valueOf(s);
max = max < d ? d : max;
}
return max;
}
Java8示例:
public static double getMinJ8(List<String> list) {
return list.stream().map(s -> Double.valueOf(s)).min((d1, d2) -> d1.compareTo(d2)).get();
}
public static double getMaxJ8(List<String> list) {
return list.stream().map(s -> Double.valueOf(s)).max((d1, d2) -> d1.compareTo(d2)).get();
}
答案 4 :(得分:0)