首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中将列表的变量值设置为另一个列表变量值

在Java中将列表的变量值设置为另一个列表变量值
EN

Stack Overflow用户
提问于 2020-08-16 06:34:08
回答 3查看 117关注 0票数 0

这是我的津贴班

代码语言:javascript
复制
public class Allowance {
    private String Id;
    private String Name;
    private String Type;
    private String RemainingAmount;
    private String TotalAmount;
}

这是创建列表

代码语言:javascript
复制
public List<Allowance> getBList(){
    List<Allowance> BList = new ArrayList<>();
    List.add(new Allowance("5964852","Name1","DATA","10","458965"));
    List.add(new Allowance("651655","Name2","DATA","20","5481662"));
    List.add(new Allowance("123","Name3","VOICE","30","8889625"));
    List.add(new Allowance("123423","Name4","DATA","20","325489"));
    return BList;
}

这是我的福利课

代码语言:javascript
复制
public class Benefits {
    private String itemId;
    private String bName;
    private String remaining;
    private String bTotal;
}

因此,我希望将Allowance类变量值设置为如下所示的福利类变量值

Id值-> itemId值

名称值-> bName值

RemainingAmount值->剩余值

TotalAmount值-> bTotal值

那么我想要像这样退回福利清单

代码语言:javascript
复制
["itemId" : "5964852","bName": "Name1","remaining":"10","bTotal":"458965"]

有人能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-16 07:35:36

您可以使用单个arg构造函数从Allowance实例中传递值,然后从传入的Allowance实例中that福利类的属性。还可以重写效益类的toString方法以获得所需的输出。“津贴”类中的克隆方法将接受您为返回福利实例列表而创建的列表。

津贴类别:

代码语言:javascript
复制
class Allowance {
    private String Id;
    private String Name;
    private String Type;
    private String RemainingAmount;
    private String TotalAmount;

    public String getId() {
        return Id;
    }

    public String getName() {
        return Name;
    }

    public String getType() {
        return Type;
    }

    public String getRemainingAmount() {
        return RemainingAmount;
    }

    public String getTotalAmount() {
        return TotalAmount;
    }

    public Allowance(String id, String name, String type, String remainingAmount, String totalAmount) {
        Id = id;
        Name = name;
        Type = type;
        RemainingAmount = remainingAmount;
        TotalAmount = totalAmount;
    }

public List<Benefits> clone(List<Allowance> allowanceList){
        
        List<Benefits> benefitList = new ArrayList<>();
        for(Allowance allowance : allowanceList){
            benefitList.add(new Benefits(allowance));
        }
        
        return benefitList;
    }
}

福利类别:

代码语言:javascript
复制
class Benefits{

    private String itemId;
    private String bName;
    private String remaining;
    private String bTotal;

    public Benefits(Allowance allowance){

        this.itemId = allowance.getId();
        this.bName = allowance.getName();
        this.remaining = allowance.getRemainingAmount();
        this.bTotal = allowance.getTotalAmount();

    }

    @Override
    public String toString() {
        return "[ itemId : " + this.itemId + ", bName : " + this.bName + ", remaining : " + this.remaining + ", bTotal :" + this.bTotal + "]";
    }
}

要创建福利项目列表,还可以直接创建以下列表:

代码语言:javascript
复制
      List<Benefits> bList = new ArrayList<>();

        Allowance a = new Allowance("5964852","Name1","DATA","10","458965");
        Allowance b = new Allowance("651655","Name2","DATA","20","5481662");
        Allowance c =  new Allowance("123","Name3","VOICE","30","8889625");
        Allowance d = new Allowance("123423","Name4","DATA","20","325489");

        bList.add(new Benefits(a));
        bList.add(new Benefits(b));
        bList.add(new Benefits(c));
        bList.add(new Benefits(d));
票数 2
EN

Stack Overflow用户

发布于 2020-08-16 08:03:47

使用流和lambda是很容易实现的。

代码语言:javascript
复制
List<Allowance> AList = BList.stream().map(B -> {
    new Allowance(
        B.getId(),
        B.getName(),
        B.getRemainingAmount(),
        B.bTotal())
}).collect(Collectors.toList())
票数 2
EN

Stack Overflow用户

发布于 2020-08-16 07:02:53

因此,根据我在对你最初问题的答复中所读到的,你会寻找一些类似的东西;

  1. 您需要为Allowance.

的所有属性创建getter。

然后,

  1. 创建一个构造函数,该构造函数以Allowance对象作为参数。

公共福利(津贴a) { this.itemId = a.getID;this.bName = a.getName;this.remaning = a.getRemainingAmount;this.bTotal = a.getTotalAmount;}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63433864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档