首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用Map<Integer,Integer>和Map<String,Integer>来覆盖它吗?

我可以用Map<Integer,Integer>和Map<String,Integer>来覆盖它吗?
EN

Stack Overflow用户
提问于 2017-07-03 12:11:58
回答 2查看 949关注 0票数 1

我有下面的类AccountWebappGridRow,,它扩展了AccountGridRow

代码语言:javascript
复制
public class AccountWebappGridRow<Accounts> extends AccountGridRow implements java.io.Serializable {

AccountGridRow contains具有以下字段:

代码语言:javascript
复制
private Map<Integer, Integer> balances;

使用公共getter/setter:

代码语言:javascript
复制
public Map<Integer, Integer> getBalances() {
  return balances;
}

public void setBalances(Map<Integer, Integer> balances) {
   this.balances = balances;
}

我是否可以以某种方式重写/替换继承的

代码语言:javascript
复制
private Map<Integer, Integer> balances;

相反,在我的AccountWebappGridRow...with中:

代码语言:javascript
复制
private Map<String, Integer> balances;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-03 12:15:51

好的。你可以这么做..。一旦,您就可以提供一个映射,允许您将Integer键转换为字符串键。

换句话说:您的类知道Integer键和值。当然,您现在可以添加另一个使用相同值的映射。唯一需要的是创建一个有意义的映射函数。有意义的意义:一种符合你要求的功能。我们不知道Map<String, Integer>应该保存什么内容;所以我们不能告诉您如何在这里正确地映射键!

最简单的答案是使用

代码语言:javascript
复制
String stringKey = someIntegerKey.toString();

resp.

代码语言:javascript
复制
Integer integerKey = Integer.parseString(stringKey);

使用这些映射,您现在可以获取内部映射并创建一个“结果”映射,该映射再次使用整数。

换句话说:您可以将这个新映射添加到您的类中;或者您可以完全重新工作您的类,并将该balances字段更改为使用不同的键。所有这些都只是“工作”--所有这些都取决于您如何定义如何从Integer获得字符串键;反之亦然。

票数 3
EN

Stack Overflow用户

发布于 2017-07-03 12:21:21

您可以定义一个使用流将Map<Integer, Integer>转换为Map<String, Integer>的方法。

代码语言:javascript
复制
public Map<String, Integer> getBalancesStringString() {
    return balances.entrySet()
            .stream()
            .collect(Collectors.toMap(e -> e.toString(), e -> e.getValue()));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44885280

复制
相关文章

相似问题

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