Java集合-List的应用----打乱数组

    //使用HashSet实现数组打乱功能
    int size=40;
    int[] num=new int[size];//条件数组
    LinkedList linkedList=new LinkedList();//使用链表存储数组,因为主要使用链表的contains方法
    while (linkedList.size()!=size){//终止条件是链表中包含40个元素之时
        int x=(int)(Math.random()*size)%size;//随机在size里生成数据,确保随机性
        if(!linkedList.contains(x))//如果链表中不包含数据则加入链表
            linkedList.add(x);
    }
    Iterator it=linkedList.iterator();
    System.out.println("SIZE:"+linkedList.size());
    while (it.hasNext()){
        System.out.print(it.next()+">");
    }

后来发现Arrays有个aslist方法,可以简化一下代码

    //使用HashSet实现数组打乱功能
    int size=40;
    int flag=0;//不适用linkedlist之后,自己定义一个中止条件
    Integer[] num=new Integer[size];//条件数组(这里有个坑。就是必须设置成Integer否则将无法正确的执行contains)
    while (flag!=40) {//终止条件是flag为40个元素之时
        int x = (int) (Math.random() * size) % size;//随机在size里生成数据,确保随机性
        if (!Arrays.asList(num).contains(x)) {//如果链表中不包含数据则加入链表
            num[flag] = x;
            flag++;
        }
    }
    System.out.println("SIZE:"+flag+"\n"+Arrays.toString(num));

但是!

这里有个大坑-是必须设置成Integer否则将无法正确的执行contains。。。
具体参考这个答案:https://www.jianshu.com/p/2b113f487e5e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值