作为标题,我想将结果集中的数据存储到哈希映射中,然后将它们用于进一步处理(max,min,avg,grouping)。
到目前为止,我通过使用适当的哈希映射并从头开始实现每个操作来实现这一点 - 迭代哈希映射(键,值)对。
我的问题是:它是否存在执行此类操作的库? 例如,一个计算List或方法的最大值的方法,给定两个相同大小的数组,执行“索引到索引”的差异。
提前致谢。
答案 0 :(得分:0)
Collections API
已经有了一些有用的功能。
例如max
或min
Collections.max(arrayList);
请调查集合documentation,看看是否有您需要的功能。可能会有woulde。
答案 1 :(得分:0)
例如,有一个Collection类。有许多有用的静态方法,但您必须阅读并选择所需的方法。这是文档:
https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html
此类仅包含在或上运行的静态方法 回归收藏。
示例:
List<Integer> list = new ArrayList<>();
List<String> stringList = new ArrayList<>();
// Populate the lists
for(int i=0; i<=10; ++i){
list.add(i);
String newString = "String " + i;
stringList.add(newString);
}
// add another negative value to the integer list
list.add(-1939);
// Print the min value from integer list and max value form the string list.
System.out.println("Max value: " + Collections.min(list));
System.out.println("Max value: " + Collections.max(stringList));
输出将是:
run:
Max value: -1939
Max value: String 9
BUILD SUCCESSFUL (total time: 0 seconds)
然而,类似的问题在此之前得到了回答,例如: how to get maximum value from the List/ArrayList
答案 2 :(得分:0)
您可以使用java 8流。
<?php
$q= mysqli_query($conn,"SELECT * FROM products");
while ($row=mysqli_fetch_array($q)) {
$id = $row['id'];
$product_name = $row['product_name'];
$available_stock = $row['available_stock'];
echo '
<tr>
<td>'.$available_stock.'</td>
<td>'.$product_name.'</td>
<td><input type="number" min="1" class="form-control" name="qty['.$id .'][]"></td>
<input type="hidden" name="id['.$id .'][]" value="'.$id.'">
<tr>
';
}
?>
请记住,它仅在您的系统具有jdk 1.8时才有效。对于不支持较低版本的jdk流。
答案 3 :(得分:0)
在Java8中,有IntSummaryStatistics
,LongSummaryStatistics
,DoubleSummaryStatistics
来计算max
,min
,count
,average
和sum
public static void main(String[] args) {
List<Employee> resultSet = ...
Map<String, DoubleSummaryStatistics> stats = resultSet.stream().collect(Collectors.groupingBy(Employee::getName, Collectors.summarizingDouble(Employee::getSalary)));
stats.forEach((n, stat) -> System.out.println("Name " + n + " Average " + stat.getAverage() + " Max " + stat.getMax())); // min, sum, count can also be taken from stat
}
static class Employee {
String name;
Double salary;
public String getName() {
return name;
}
public Double getSalary() {
return salary;
}
}
答案 4 :(得分:-1)
对于max,min,avg,您可以使用Java 8及其流处理。