到底写不写成一个类?

koalapheonix 2009-11-10 09:57:18
我现在要用到一个数据结构 HashMap<key1, value1>,而这个value又是一个HashMap<key2, value2>,而value2又是一个List,现在我想value1是不是应该再定义一个类型比如:

class XXXXX extends HashMap{
}

而value2又定义一个

class YYYYY extends HashMap{
}

但是类里面什么也没有,看起来很怪。这种情况应该怎么去写呢?
...全文
208 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
FreeI 2009-11-10
  • 打赏
  • 举报
回复
不用在写另外的类了,有现成可以用啊

zhaomiaoqq 2009-11-10
  • 打赏
  • 举报
回复
直接用HashMap就可以,不用继承的.
gao11811 2009-11-10
  • 打赏
  • 举报
回复
如果你这个hashMap的value很清晰,简洁,或者是临时生成,那就不需要拉
如果有很多元素,那就写个pojo类吧
按照你给的,难道这2个value都没有元素的?
koalapheonix 2009-11-10
  • 打赏
  • 举报
回复
不是,我的意思是如果不创建新类的话,写的代码非常难懂,一大堆get什么的,写的谁也看不懂了。

而创建新的类的话,看起来又太奇怪了。
realreachard 2009-11-10
  • 打赏
  • 举报
回复
没必要自己弄个数据结构
Map<Object, HashMap<Object, List<Object>>>  map = new HashMap<Object, HashMap<Object, List<Object>>>();


如果操作比较多的话,可以写个操作类用来简化操作时代码的重复
三界五行外 2009-11-10
  • 打赏
  • 举报
回复
哎,开明白了,楼主是问value1和value2是不是需要建新类型才能用。
没必要的,value1和value2这两个参数是Object类型的,而所有类型都是继承Object的,所以这里可以使用任意类型,自然可以直接使用HashMap和List。
wifewifewife 2009-11-10
  • 打赏
  • 举报
回复
没必要建类,多余的,像楼上的就可以了.
justinavril 2009-11-10
  • 打赏
  • 举报
回复
HashMap的key和value都可以是HashMap啊。
HashMap<HashMap<Integer, String>, HashMap<Integer, String>> map = 
new HashMap<HashMap<Integer, String>, HashMap<Integer, String>>();
feng_jyie 2009-11-10
  • 打赏
  • 举报
回复
为什么再定义新的类型呢?
yancaobisi 2009-11-10
  • 打赏
  • 举报
回复
个人感觉用没有必要写成类,如果比较复杂的话可以另作考虑
三界五行外 2009-11-10
  • 打赏
  • 举报
回复
有现成的类为什么不用?
bawgiitx 2009-11-10
  • 打赏
  • 举报
回复
实在想要定义的话就定义个内部类,变量调用也方便
Dan1980 2009-11-10
  • 打赏
  • 举报
回复
可以定义新类,但不要用继承,而应该用组合。
pzr131452 2009-11-10
  • 打赏
  • 举报
回复
没必要
longq121 2009-11-10
  • 打赏
  • 举报
回复
没必要定义一个,
gao512008 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 justinavril 的回复:]
引用 8 楼 koalapheonix 的回复:

你要是有这个担心的话 可以把它们封装在方法里
[/Quote]
不错
嘟嘟xo 2009-11-10
  • 打赏
  • 举报
回复
新的类型就没必要定义了,写个辅助处理的帮助类是个不错的选择!
ltandfyy 2009-11-10
  • 打赏
  • 举报
回复
那你的问题可能和我上次比较相似,但不是像你这样继承封装的,value1可以用这样一类来代替:
public class Value1 {
private HashMap<String,Value2>();
}
然后value2:
public class Value2 {
private List<String> list;
}
get与set方法我省略了,当时我封装了像Value2这样一个类的原因是为了解决Struts2在jsp页面上迭代List<List<Object>>这样一个类型不能迭代,只能把List<Object>封装在自己的MyObj里变成迭代List<MyObj>
justinavril 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 koalapheonix 的回复:]
不是,我的意思是如果不创建新类的话,写的代码非常难懂,一大堆get什么的,写的谁也看不懂了。

而创建新的类的话,看起来又太奇怪了。
[/Quote]
你要是有这个担心的话 可以把它们封装在方法里

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧