相关疑难解决方法(0)

如何在HashMap中保留插入顺序?

我正在使用HashMap.当我遍历地图时,数据以(通常是相同的)随机顺序返回.但是数据是按特定顺序插入的,我需要保留插入顺序.我怎样才能做到这一点?

java hashmap

456
推荐指数
2
解决办法
33万
查看次数

如何在Java中从给定的地图值中查找最新日期

我有下面的值与哈希值映射,在值中我已经日期为字符串数据类型。我想比较地图中所有可用的日期,并仅提取一个具有最近日期的键值。

我想与值而不是键进行比较。

我已包含以下代码

import java.util.HashMap;
import java.util.Map;

public class Test {

  public static void main(String[] args) {

      Map<String, String> map = new HashMap<>();
      map.put("1", "1999-01-01");
      map.put("2", "2013-10-11");
      map.put("3", "2011-02-20");
      map.put("4", "2014-09-09");

      map.forEach((k, v) -> System.out.println("Key : " + k + " Value : " + v));
    }

}
Run Code Online (Sandbox Code Playgroud)

预期的输出是:

关键4值2014-09-09

java lambda date java-8 java-stream

10
推荐指数
2
解决办法
218
查看次数

在哈希映射中获取前10个值

我试图找出如何从中得到前10个值HashMap.我最初尝试使用TreeMap它并按值排序然后取前10个值,但似乎这不是选项,因为TreeMap按键排序.

我想仍然能够知道哪些键具有最高值,K, V即地图的值String, Integer.

java sorting hashmap

7
推荐指数
1
解决办法
2万
查看次数

访问hashmap的值

可能重复:
如何迭代Map中的每个条目?

我有一个MAP, Map<String, Records> map = new HashMap<String, Records> ();

public class Records 
{
    String countryName;
    long numberOfDays;

    public String getCountryName() {
        return countryName;
    }
    public void setCountryName(String countryName) {
        this.countryName = countryName;
    }
    public long getNumberOfDays() {
        return numberOfDays;
    }
    public void setNumberOfDays(long numberOfDays) {
        this.numberOfDays = numberOfDays;
    }

    public Records(long days,String cName)
    {
        numberOfDays=days;
        countryName=cName;
    }

    public Records()
    {
        this.countryName=countryName;
        this.numberOfDays=numberOfDays;
    }
Run Code Online (Sandbox Code Playgroud)

我已经实现了map的方法,现在请告诉我如何访问hashmap中存在的所有值.我需要在Android的UI上显示它们吗?

java android

6
推荐指数
2
解决办法
5万
查看次数

HashMap以非连续顺序返回值

我在HashMap中插入具有不同键的四个值.代码片段:

HashMap<Integer, String> choice = new HashMap<Integer, String>();

choice.put(1, "1917");
choice.put(2, "1791");
choice.put(3, "1902");
choice.put(4, "1997");
Run Code Online (Sandbox Code Playgroud)

但是当我打印那个地图值时,它返回的结果如下:

{4 = 1997年,1 = 1917年,2 = 1791年,3 = 1902年}

如何按照插入/插入的顺序获取地图值?

java hashmap map

4
推荐指数
1
解决办法
4200
查看次数

基于键的地图排序

这基本上不是HashMap基于键的排序方式.为此,我可以直接使用TreeMap没有眨眼:)

我现在拥有的是

Map<String, Object> favoritesMap = new HashMap<String, Object>();
and its contents can be
["Wednesdays" : "abcd"]
["Mondays" : "1234"]
["Not Categorized" : "pqrs"]
["Tuesdays" : "5678"]
Run Code Online (Sandbox Code Playgroud)

我想基于键对HashMap进行排序,除此之外,我需要"未分类"才能找到最后一个.

因此,在迭代keySet时所期望的是

["Mondays", "Tuesdays", "Wednesdays", "Not Categorized"] i.e. sorted on keys and "Not Categorized" is the last one
Run Code Online (Sandbox Code Playgroud)

HashMap在创建时加入,["Not Categorized" : "pqrs"]但最后添加但HashMap不保证顺序:)

解决方案的任何其他指针?

java hashtable hashmap

3
推荐指数
1
解决办法
1409
查看次数

确定Java HashMap中最低可用键的最快方法?

想象一下这样的情况:我有一个HashMap<Integer, String>,我在其中存储连接的客户端。是的HashMap,因为顺序无关紧要,我需要速度。它看起来像这样:

{
    3: "John",
    528: "Bob",
    712: "Sue"
}
Run Code Online (Sandbox Code Playgroud)

大多数客户端断开连接,所以这就是为什么我有很大的差距。如果我想添加一个新客户端,我需要一个密钥,显然_map.size()获取密钥的用法是不正确的。

所以,目前我使用这个函数来获取最低可用键:

private int lowestAvailableKey(HashMap<?, ?> _map) {
    if (_map.isEmpty() == false) {
        for (int i = 0; i <= _map.size(); i++) {
            if (_map.containsKey(i) == false) {
                return i;
            }
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,这真的很慢。有没有更快或更专业的方法来获得 a 的最低自由键HashMap

java key hashmap

3
推荐指数
1
解决办法
985
查看次数

如何用Java中的第二个字按字母顺序对字符串数组进行排序

我正在处理的任务有点问题.基本上,我有一个文件,学生证和他们的名字采用以下格式:

17987贝丝

17950克拉克

17936亚伦

我把文件的内容放在一个数组中,我需要按名称排序,而不是ID.如果我使用Arrays.sort(myArray)它将按ID自动排序.我很难理解比较器,所以如果你能逐步解释它,对我来说会更容易.谢谢!

java arrays sorting string

1
推荐指数
1
解决办法
3520
查看次数

按 LocalDateTime 对流中的地图进行排序

我有地图Map<LocalDateTime, String>

如何按键值对其进行排序?我应该使用什么比较器?

someMap.entrySet().stream().sorted(Comparator.comparing(???))
Run Code Online (Sandbox Code Playgroud)

或者

someMap.entrySet().stream().sorted(??)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我应该写什么来代替“??” ?

排序:

Key                      Value
2020-01-09 09:57:58.631  Some info
2020-01-09 09:57:59.224  Some info
2020-01-09 09:59:03.144  Info
Run Code Online (Sandbox Code Playgroud)

不排序:

Key                     Value
2020-01-09 09:57:58.631  Some info
2020-01-09 09:59:03.144  Info
2020-01-09 09:57:59.224  Some info
Run Code Online (Sandbox Code Playgroud)

java sorting java-8 java-stream java-time

1
推荐指数
1
解决办法
201
查看次数

标签 统计

java ×9

hashmap ×5

sorting ×3

java-8 ×2

java-stream ×2

android ×1

arrays ×1

date ×1

hashtable ×1

java-time ×1

key ×1

lambda ×1

map ×1

string ×1