小编Jul*_*lio的帖子

创建地图,根据条件从列表中删除重复项

我想根据使用 java 8、lambda 表达式的条件获得一个没有重复的列表。假设我有以下代码:

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Main {

    class Person {
        private String name;
        private int age;

        public Person(String name, int age) {
           this.name = name;
           this.age = age;
        }

        public String getName() {
            return this.name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return this.age;
        }

        public void setName(int age) {
            this.age = age;
        }
    }

    public static void main(String[] args) {

        Main main = …
Run Code Online (Sandbox Code Playgroud)

java java-8 collectors

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

在 forEach Java 8 里面积累

如何在 forEach 中累积?这是我的代码:

public Double accumulate() {
        Double accum = 0d;

        numbers.stream().forEach(p-> {

            // if condition
                accum = accum + numbers.getAmount();
            // else
                accum = accum + numbers.getAmountWithInterest();
        });

        return accum;
    }
Run Code Online (Sandbox Code Playgroud)

也许我应该使用 map 而不是 forEach,我尝试了几件事,但没有奏效。谢谢

java java-8

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

使用枚举实现策略模式

我正在尝试创建一个服务来处理不同的付款方式。我想实现策略模式。我想要一个具有不同付款方式的枚举。这是我所拥有的一个例子:

public enum Pay {
    CREDITCARD(1) {
        @Override
        public void pay() {
            System.out.println("Payment functionality");
        }

    },
    OTHERMETHOD(2) {
        @Override
        public void pay() {
            System.out.println("Payment functionality");
        }
    };

    private int id;

    Payment(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public abstract void pay();
}
Run Code Online (Sandbox Code Playgroud)

在客户端的某个地方:

user.setPay(Pay.CREDITCARD);
user.pay();
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是“pay”方法可能有很多逻辑,所以我想把它放在不同的类中。我可以定义一个这样的接口:

public interface Pay {
    void pay();
}

public class CreditCard implements Pay {
    @Override
    public void pay() { …
Run Code Online (Sandbox Code Playgroud)

java design-patterns

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

标签 统计

java ×3

java-8 ×2

collectors ×1

design-patterns ×1