gpt4 book ai didi

java - 如何在hashmap中首先迭代最大的键字符串值

转载 作者:行者123 更新时间:2023-12-01 12:49:23 24 4
gpt4 key购买 nike

我想先迭代最大的键值。我的代码在这里。我有一些有值(value)的 HashMap 。我想首先迭代最大的键值,以便它将根据我的代码首先替换最大的键值。

 HashMap<String, String> mapp=new HashMap<String, String>();
mapp.put("ab","blue");
mapp.put("abc","black");
mapp.put("abcdef","green");
mapp.put("abcd","pink");

for (Iterator it = alltyp.iterator(); it.hasNext();) {
String finalstring = (String) it.next();
Iterator it1=mapp.entrySet().iterator();
while(it1.hasNext())
{
Map.Entry pairs = (Map.Entry) it1.next();
String key_ = (String) pairs.getKey();
String value_ = (String) pairs.getValue();
finalstring = finalstring.replaceAll(key_, value_);
}
}

首先它将迭代键值“abcdef”,然后“abcd”,然后“abc”,最后“ab”。现在在 while 循环中它将首先替换“abcdef”。 请给我你的建议。

最佳答案

使用TreeMap对象而不是HashMap

迭代 TreeMap 将为您提供按升序排列的键。只需在迭代时将值压入堆栈,然后将它们一一弹出,瞧,现在您的键已按降序排列。

TreeMap<String, String> mapp = new TreeMap<String, String>();
mapp.put("ab","blue");
mapp.put("abc","black");
mapp.put("abcdef","green");
mapp.put("abcd","pink");

Stack<Entry<String, String>> stk = new Stack<Entry<String, String>>();
for (Entry<String, String> entry : mapp.entrySet()) {
stk.push(entry);
}

while (!stk.isEmpty()) {
Entry<String, String> entry = stk.pop();
// Do something with entry
}

关于java - 如何在hashmap中首先迭代最大的键字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com