java 哪种方法最好?

标签 java collections

要求

  1. 给定 Map<String, String>
  2. 对每个键/值条目进行百分比编码
  3. 按编码键对条目进行排序
  4. 将它们作为单个字符串附加,例如 ?a=b&c=d

方法 1

  1. 准备 TreeMap .
  2. 将这些编码的键/值条目放入此映射中。
  3. 迭代 map 时连接输出字符串。

方法 2

  1. 准备 ArrayList预测大小(source-map.size *2)
  2. 在找到正确的位置时插入这些编码键/值
  3. 迭代列表时连接输出字符串

方法 3

  1. 准备 LinkedList
  2. 在找到正确的位置时插入这些编码键/值
  3. 迭代列表时连接输出字符串

哪种方法最好?

最佳答案

渐近复杂度,n 是键值对的数量:

方法 1:O(n log n)

方法 2:O(n^2)

方法 3:O(n^2)

对于相当大的 n,第一种方法将比其他方法更快,但当键很少时,其他方法可能会更快。

关于java 哪种方法最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17803188/

相关文章:

java - 使用什么高效的 Java 集合来存储一百万个字符串?

java - 非 log 2 的快速傅里叶变换

java - 比较日期和其他 Java 俏皮话

java - 事务未准备好 (ActiveMQ), "the XA resource has become unavailable"(Atomikos),日志中无休止的异常

java - 如何将文件的签名与签名数据库进行比较?

java - Arraylist和Vector的负载因子?

c# - C#中如何从数组中获取随机值

c# - 使用 HashSet C# 选择项目

java - 如何将空值添加到 ConcurrentHashMap

java - Linux (Ubuntu 12.04) 的多线程性能很糟糕?