小编Kee*_*thi的帖子

如何编写一个接受 Integer、Float、Double 列表并计算平均值的方法?

我正在尝试编写一个方法,该方法接受数值列表 - 例如List<Integer>List<Float>List<Double>- 并给出平均值。

public double getAverage(List<? extends Number> stats) {
    double sum = 0.00;
    if(!stats.isEmpty()) {
        // sum = stats.stream()
        //            .reduce(0, (a, b) -> a + b);
        // return sum / stats.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

这些是我得到的错误:

运算符“+”不能应用于“capture<?” 扩展 java.lang.Number>', 'capture<? 扩展 java.lang.Number>'

java generics collections java-stream

7
推荐指数
2
解决办法
353
查看次数

下界通配符

我一直在尝试了解Java Generics中的下界通配符的概念和基本原理。我可以理解只读的上限通配符背后的原因,以及在何处以及如何使用它。我仍然无法掌握下限通配符。我有一组遵循以下层次结构的类。(Automobile是基类。)

Automobile
    - Bus
        - Minibus
        - Doubledecker
        - Electricbus
    - Car
        - Sedan
        - Hatchback
        - Coupe
    - Truck
        - Minivan
        - Pickuptruck
        - Suv
            - Fullsuv
            - Midsuv
Run Code Online (Sandbox Code Playgroud)

现在,我试图建立一个(灵活的)列表,并向其中添加不同类型的对象。

import java.util.ArrayList;
import java.util.List;

public class Garage {

    public static void main(String[] args)
    {
        List<? super Suv> list = null;

        Suv s = new Suv();
        Truck t = new Truck();
        Automobile a = new Automobile();

        list = new ArrayList<Suv>();
        list.add(s); // declared as List<? super Suv> …
Run Code Online (Sandbox Code Playgroud)

java generics types

5
推荐指数
1
解决办法
205
查看次数

Java中使用Stream合并两个排序数组

我有两个已排序的整数数组。我希望将它们合并到一个排序数组中。我想使用 Java Stream 来实现这一点。

我可以做一个嵌套流吗?

Arrays.asList(nums1).stream()
            .forEach(i -> Arrays.asList(nums2).stream()
                    .forEach(j -> //compare i,j)
                            .collect as list// ;  
Run Code Online (Sandbox Code Playgroud)

例如,[1,3,4]并且[2,5]应该返回[1,2,3,4,5]

java arrays sorting algorithm java-stream

1
推荐指数
1
解决办法
1671
查看次数

有关equals和hashCode的更多信息

我理解equalshashCode方法之间的契约.如果equals被覆盖,hashCode也应该是.我可以覆盖hashCode方法以始终返回相同的值,比如int 23吗?我可以覆盖hashCode每次调用时返回随机数的方法吗?

java hashcode

0
推荐指数
1
解决办法
45
查看次数