哪位知道有没有这样的容器来能满足我如下的需求?需要存储的元素都是自己定义的类的对象,容器里的对象不能重复。
容器里的元素都有自己的编号,通过对象可以拿到自己的编号,也可以通过编号找到这个元素。有满足这个要求的容器类吗?
容器里的元素都有自己的编号,通过对象可以拿到自己的编号,也可以通过编号找到这个元素。有满足这个要求的容器类吗?
解决方案 »
- java poi 读取Excel2007版本时内存溢出
- java循环的问题
- java filewriter 与 outputstream 问题
- 请教高手,java怎样才能生成csv文件?用到哪个类呢?
- 数据库的关闭
- 拜!再拜!关于jsp环境配置的问题。
- JCombobox取值
- jconnect5.5 for sybase连不上Sybase11.95数据库,url该怎么写???高分
- 向各位前辈请教一个问题
- 简单的问题,必给分
- 吐槽一下JAVA:有人注意到这个问题了吗?
- 出现Exception in thread "main" java.lang.NullPointerException求指教,急急急
用set.
至于编号,每个容器都有编号,如果你的key不是数值类型,再用map吧Set(interface): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注重的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现Comparable接口并定义compareTo()方法。