我需要将排序的数据写入文件。数据(IP 对象)根据 IP(字符串,IP 对象的属性)排序。
所以我有两个选择,要么采用 TreeMap 并将数据插入到 treeMap 中,要么在获取所有数据后对其进行排序。
即
Map<String, IPObject>> map = new TreeMap<>(new IPComparator);
或
将所有对象简单存储在 ArrayList 中,然后调用排序方法
Collection.sort(ip_Object_List, new IPListComparator);
那么哪种方法更好、更高效?
最佳答案
“哪种方法更好”的答案在很大程度上取决于您需要某种方法的目的。
- 如果您的
ip_Object_List
创建一次,之后就不再更改,则Collection.sort
方法更有效,因为升迭代运行得更快 - 如果您的
map
更新频繁,总想按排序顺序访问,TreeMap<>
表示可能会更快,具体取决于您迭代它的频率。
您所采用的方法不太可能在性能和效率方面产生明显的差异,因此请选择对您来说更舒服的方法。仅当分析器运行表明代码在您选择的结构中消耗了过多的 CPU 或内存时,才应考虑使用替代表示。
关于java - 哪种方法可以更好地获取排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633499/