java - 哪种方法可以更好地获取排序数据

标签 java sorting arraylist treemap

我需要将排序的数据写入文件。数据(IP 对象)根据 IP(字符串,IP 对象的属性)排序。

所以我有两个选择,要么采用 TreeMap 并将数据插入到 treeMap 中,要么在获取所有数据后对其进行排序。

Map<String, IPObject>> map = new TreeMap<>(new IPComparator);

将所有对象简单存储在 ArrayList 中,然后调用排序方法

Collection.sort(ip_Object_List, new IPListComparator);

那么哪种方法更好、更高效?

最佳答案

“哪种方法更好”的答案在很大程度上取决于您需要某种方法的目的。

  1. 如果您的ip_Object_List创建一次,之后就不再更改,则 Collection.sort方法更有效,因为升迭代运行得更快
  2. 如果您的map更新频繁,总想按排序顺序访问,TreeMap<>表示可能会更快,具体取决于您迭代它的频率。

您所采用的方法不太可能在性能和效率方面产生明显的差异,因此请选择对您来说更舒服的方法。仅当分析器运行表明代码在您选择的结构中消耗了过多的 CPU 或内存时,才应考虑使用替代表示。

关于java - 哪种方法可以更好地获取排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633499/

相关文章:

java - 极小极大算法错误

java - jsp:如何向用户隐藏网站的文件夹结构?

java - 将元素添加到 Arraylist 并替换 Java 中的所有先前元素

java - 仅将文件中的特定文本添加到数组列表

java - 在 ArrayList 中搜索字符串中的特定字符

java - 是否可以在 java 中重用字符串?

c - 无法在 C 中按字母顺序对字符串列表进行排序

javascript - JS根据文本内容自定义表格排序

java - 对树状图进行排序并没有真正起作用

java - 无法使用jSTL在jsp中迭代arraylist