当谈到被认为是更好的实施时,我有点混乱。
一方面,
LinkedHashMap
提供以下好处:
以下陷阱:
BaseAdapter
课程不自然支持?我似乎无法使用getItem
为自定义ListView
Adapter
检索元素。但是ArrayList
可以轻松使用自定义BaseAdapter
课程。
但是......
我收到重复的项目。
ArrayList.contains
个对象的自定义comparators
,否则我无法与ArrayList
方法进行比较或检查。参数。是否有更简单的方法来实现以下目标:
答案 0 :(得分:0)
似乎没有人回答,我会提供我的方法。
<强> 1。重复的条目
如果您想使用列表,那么正如我在评论中所述,
我会让你的Item类覆盖Object.equals()
和Object.hashCode()
。
这些内容在ArrayList.contains()
内部使用。
这样就不会在只添加项目的情况下为您提供重复的条目
list.contains(item) == false
。
<强> 2。排序强>
要对List进行排序,有一个非常有用的类叫做 Collections
使用静态方法Collections.sort()
简单地对列表进行排序。
要完成这项工作,您需要在您的网站中实现 Comparable 界面
item class并在此处应用您自己的排序规则。
<强> TreeSet中强>
如果它不一定需要是List,我会建议 实现 Comparable 并使用TreeSet,它为您提供了性质 一组没有重复的条目,并通过添加直接排序。
<强> LinkedHashSet 强>
如果您不需要重复的条目,则应遵循该顺序 按插入顺序,使用LinkedHashSet。
祝福,史蒂夫。