【问题标题】:Generate random pairs of from list of integer without duplication of the number从整数列表中生成随机对而不重复数字
【发布时间】:2022-06-24 12:06:21
【问题描述】:

我必须列出像 {1,3,4,5,6,7} 这样的整数 我想以随机顺序生成一个数组,其中包含来自 a 和 b 数组的对,没有重复。例如我想得到以下结果:

c={(1,5),(3,7),(4,6),...}

如果我们找到奇数,那么它应该为我们提供最后一个数字的随机选择

{1,3,4,5,6,7,8}

c={(1,5),(3,7),(4,6,8),...}

我使用下面的代码来实现这一点,但它没有按预期工作。

int[] a={1,2,3,4,5};
    int[] b={6,7};
    List<int[]> list = new ArrayList<>();
    for (int i = 0; i < a.length; ++i)
        for (int j = 0; j < b.length; ++j)
            list.add(new int[] {a[i], b[j]});
    Collections.shuffle(list);

谢谢!

【问题讨论】:

    标签: java


    【解决方案1】:

    我已经解决了类似的问题。希望下面的代码对你有所帮助。

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Random;
    import java.util.Set;
    import java.util.TreeSet;
    import java.util.stream.Collectors;
    import java.util.stream.IntStream;
    
    public class PairMap {
    
        public static void main(String[] args) {
            LinkedList<Integer> userList = new LinkedList<>(IntStream.range(1, 18).boxed().collect(Collectors.toList()));
            List<Set<Integer>> usersPairs = new ArrayList<>();
            
            Collections.shuffle(userList);
            
            while(userList.size() > 1)
            {
                Set<Integer> userSet = new TreeSet<>();
                userSet.add(userList.removeFirst());
                userSet.add(userList.removeFirst());
                usersPairs.add(userSet);
                
            }
            
            Random r = new Random();
            if(userList.size() == 1 && !usersPairs.isEmpty()) {
                    usersPairs.get(r.nextInt(usersPairs.size())).add(userList.removeFirst());
            }
            System.out.println(usersPairs);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      相关资源
      最近更新 更多