当前位置: 首页 > 知识库问答 >
问题:

如何在地图中更改对?

权玉泽
2023-03-14

我有一张地图

例如:[1:'A',2:'B',…,26:'Z']

我有一个rotate()方法,它应该放置带有更改链接的条目

首次使用该方法后,我的地图应该是[1:'Z',2:'A',3:'B',…,26:'Y']

以下是我目前的认识:

public void rotate() {
    final Map<Integer, Character> tempMap = new HashMap<>();
    alphabetMap.forEach((key, value) -> tempMap.put(key == 26 ? 1 : key + 1, value));
    alphabetMap = tempMap;
}

有没有其他方法/algorhitm更快地“旋转”我的条目?


共有1个答案

秦跃
2023-03-14

对于“更快”的旋转,可以使用列表替换贴图,然后使用方法集合。旋转可用于此目的。然后可以通过范围[0..25]中的索引访问列表元素。

或者可以实现一个小的包装类:

static class MyCharMap {
    private List<Character> chars = IntStream
        .rangeClosed('A', 'Z')
        .mapToObj(c -> (char)c)
        .collect(Collectors.toList());
        
    public void rotate() {
        Collections.rotate(chars, 1);
    }
    
    public Character get(Integer i) {
        assert(1 <= i && i <= 26);
        return chars.get(i - 1);
    }
    
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(4 * chars.size() + 2);
        sb.append('{');
        for (int i = 0, n = chars.size(); i < n; i++) {
            if (i > 0) sb.append(", ");
            sb.append(i + 1).append(':').append(chars.get(i));
        }
        sb.append('}');
        return sb.toString();
    }
}

测试:

MyCharMap chars = new MyCharMap();
        
chars.rotate();
chars.rotate();
System.out.println(chars);
System.out.println(chars.get(1));

输出:

{1:Y, 2:Z, 3:A, 4:B, 5:C, 6:D, 7:E, 8:F, 9:G, 10:H, 11:I, 12:J, 13:K, 14:L, 15:M, 16:N, 17:O, 18:P, 19:Q, 20:R, 21:S, 22:T, 23:U, 24:V, 25:W, 26:X}
Y

 类似资料:
  • 我正在用html/jsp页面主体中的Google地图做一个web动态项目。 我制作了一个函数,可以创建一个标记(lat、lng、map),并在标记的参数中使用一个特殊的image.png作为图标。 在我的地图中,我制作了两种不同的样式(地图的颜色…)“白天”和“夜晚”。 我想知道当用户点击夜间更改样式时,我如何更改标记的图标。事实上,标记的颜色不适合这种风格的地图... 我尝试用相同的名称初始化不

  • 我想更改Google Maps上选定的标记图标,因此我有以下代码: 在这一行,我从下面得到错误: 例外情况如下:

  • 问题内容: 我想用字符串键和struct值构建一个映射,通过它我可以更新由map key标识的映射中的struct值。 我已经尝试过了,这并没有给我想要的输出。 我真正想要的是: 问题答案: 您无法更改与地图中的键关联的值,只能重新分配值。 这给您2种可能性: 将指针存储在地图中,因此您可以修改 指向的 对象(不在地图数据结构内部)。 存储结构值,但是在修改它时,需要将其重新分配给键。 1.使用指

  • 问题内容: 好的,所以我一直在研究这一点。我对Java还是很陌生,但认为这很容易。我已经尝试了本网站上已回答的所有方法,但仍然没有运气,通常,当我在这里查看时,我能够找到适合我所寻找答案的答案。有谁知道如何更改JFrame右上角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且都可以工作,这是我似乎无法使用的唯一文件。 这是我的程序主菜单代码的第一部分,除我尝试添

  • 问题内容: 我有一个图表,其中x轴显示时间,y轴显示我的数据。我想通过为x轴选择不同的指标来更改比例。例如 秒,分钟和小时刻度。默认值为秒。因此,如果选择分钟,则图表应该更小且更弯曲。任何的想法?UI 尚未完成,但是您假设将有x和y轴。的参数度确定其应被缩放到第二(度= 1),分钟(度= 60)或小时(度= 3600) 问题答案: 考虑使用jfreechart,它将缩放图形以填充封闭的容器。中看到

  • 问题内容: 我正在尝试使用Swift更改UIButton的图像…我该怎么办 这是OBJ-C代码。但是我不知道Swift: 问题答案: 从您的Obc-C代码中,我认为您想为按钮设置图片,因此请尝试以下方式: 简而言之: 对于Swift 3: