zoukankan      html  css  js  c++  java
  • 将一个数组进行乱序打印,并输出

    此题提供三种思路及对应代码:

    方法一:构建一个新数组,将旧数组随机的一个数存储进新数组,判断新数组中有没有该数,有则继续,无则插入,但存在运气,因为随机抽取的可能已经存在于新数组中了;

    方法二:构建一个新数组,将旧数组随机的一个数存储进新数组,并将这个数从旧数组中删除,下次就不会再随机抽到该数了;

    方法三:运用集合知识Collections.shuffle()进行打乱,然后输出即可。

    public class LuanxuPrint {
      public static void main(String[] args) {
        int[] arr = {2,4,5,6,7,8,9,10,11,12,13,14};
        int[] newArr = new int[arr.length];
        print1(arr,newArr);
        print2(arr,newArr);
        print3(arr,newArr);
      }
      public static void print3(int[] arr, int[] newArr) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        ArrayList<Integer> newList = new ArrayList<Integer>();
        for(Integer i : arr){
          list.add(i);
        }
        Collections.shuffle(list);
        System.out.print(list);
      }
      public static void print2(int[] arr, int[] newArr) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        ArrayList<Integer> newList = new ArrayList<Integer>();
        for(Integer i : arr){
          list.add(i);
        }
        while(list.size() > 0){
          int ran = (int) (Math.random()*(list.size()));
          // System.out.print(ran+" ");
          if(!newList.contains(list.get(ran))){
            newList.add(list.get(ran));
          }else{
            list.remove(list.get(ran));
          }
        }
        System.out.print(newList);
      }
      public static void print1(int[] arr, int[] newArr){
        int count = 0;
        while(true){
          int ran = (int) (Math.random()*(arr.length));
          // System.out.print(ran+" ");
          if(!exist(arr[ran],newArr)){
            newArr[count++] = arr[ran];
          }
          if(count == arr.length){
            break;
          }
        }
        System.out.println();
        for(Integer i : newArr){
          System.out.print(i + " ");
        }
      }
      public static boolean exist(int ran, int[] newArr) {
        for(int i = 0; i < newArr.length; ++i){
          if(newArr[i] == ran){
            return true;
          }
        }
        return false;
      }
    }

  • 相关阅读:
    SQL——UPDATE(改)
    SQL——INSERT INTO(增)
    SQL——SELECT(查)
    Python——raise引发异常
    Python——异常处理
    Python——多态、检查类型
    Python——继承
    Python——封装
    popitem()方法
    pop(D)方法
  • 原文地址:https://www.cnblogs.com/huaiyinxiaojiang/p/6429119.html
Copyright © 2011-2022 走看看