我在GitHub的这个Android项目中看到了一些非常奇怪的东西。
他们使用递归引用而不是使用诸如ArrayList
或LinkedList
之类的buit-in数据结构来管理集合。我的意思是每个对象保持对"集合中的下一个对象的引用"并实现size()
和getNext()
;
见这里的例子: https://github.com/xxahtixx/aad2Project/blob/master/src/com/example/aad2project/object/Task.java
为什么要这样做?
答案 0 :(得分:2)
类Task
实现为单向链表
您可以使用通用列表来完成类似的操作,但这会带来您不需要的所有代码。例如在lastIndexOf(Object o)
的情况下ArrayList
。
有时会选择极简主义的实现来提升性能。例如示例中的任务列表可能比使用通用列表的实现使用更少的内存。