java - 从字符串中删除重复的 URI 参数的最佳方法是什么?

标签 java performance

我有一个字符串,root?param1=...¶m2=...¶m3=...,我想创建一个 java 方法来删​​除任何重复的参数。这些值始终相同,但有时参数会根据应用程序的功能重复(不要询问)。因此,

HTTP://root?param1=value&param2=value2&param2=value2param3=value3&param3=value3&param1=value&param1=value

变成了

HTTP://root?param1=value&param2=value2&param3=value3

我已经脱离编程太久了,记不清执行此操作的最佳方法,但我最初的思路是这样的:

获取每个参数并将其放入临时数组中,运行临时数组并比较 array[i] 是否等于任何其他参数名称。如果有,请删除。如果没有,则添加回返回字符串。在循环结束时,打印返回字符串。

但这需要 URI 长度的 O(n) 加上 O(m)!数组的大小(m 是参数的数量)。考虑到我将针对所有传入 URI 每分钟运行此方法大约 5,000 次,我认为这将是非常糟糕的。有没有更好的方法来解决这个问题,或者有一个开箱即用的 java 方法来处理一些开销?

最佳答案

您可以将键/值对粘贴到 Map<String,String> 中。这将自动处理重复的键,并且非常容易编写代码。

要验证具有相同键的参数是否具有相同的值,您可以检查 put() 的返回值:它应该是 null ,或者等于您刚刚插入的值。

关于java - 从字符串中删除重复的 URI 参数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357987/

相关文章:

java - 在 Java 中使用 STR_TO_DATE 插入日期,使用 PreparedStatement

Mysql 5.5 InnoDB INSERT/UPDATE 非常慢

c - 如何快速读取和解析带有数字的文本文件(在 C 中)?

java - Lambda 不会覆盖单独文件中的接口(interface)方法

java - 仅为一个字段编写 Mongo 转换器

java - java.awt.Color 和 javafx.scene.paint.Color 之间的区别

python - 计算第一个三角形数在python中有超过500个除数

Java:使用反射还是将实例对象存储在列表中?

ios - 预渲染的 Core Graphics 动画不流畅且占用内存

java - 将产品存储在 TreeSet 中并将内容打印在 JTable 中