gpt4 book ai didi

java - 如何将两个int数组混合成唯一的xy坐标Map?

转载 作者:行者123 更新时间:2023-11-29 05:37:01 24 4
gpt4 key购买 nike

考虑一下:

public Map<Integer, Point> setXY(int[] x, int[] y) {
Point point;
Map<Integer, Point> xy = new HashMap<Integer, Point>();
int key = 0;
for (int i = 0; i < x.length; i++) {
for(int j = 0; j < y.length; j++) {
point = new Point(x[i], y[j]);
xy.put(key, point);
key++;
}
}
return xy;
}

我有两个不同长度的 int 数组,我尝试为“n”个 Point 对象创建唯一坐标。 “n”表示“x.length + y.length”的值(例如 n = x[3] + y[5])。然后我将这些对象添加到我的 HashMap 中。问题是,这个嵌套的“for”指令为“i = 2”创建了例如五个坐标点:(2, 1), (2, 2), (2, 3), (2, 4) 和 ( 2, 5).我想要实现的是使用这两个给定的“x”和“y”数组对点创建进行完全随机化。你有什么想法吗?

编辑

我现在正在考虑仅针对 map 键值进行随机化的可能性。例如我在 map 中有 400 个对象,所以如果我知道如何获取 0-400 范围内的随机唯一 (!) 值就足够了。当然值(value)观不能重复。这是整个事情的关键。

最佳答案

在 Collections 中有一个 shuffle 方法,你可以使用它来获取数组中随机顺序但唯一的元素。

Collections.shuffle(Arrays.asList(y));

这将打乱数组 y 中元素的顺序。然后使用for循环进行迭代。

关于java - 如何将两个int数组混合成唯一的xy坐标Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128889/

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