Thinking in Java-从数组中随机生成且不重复
来源:互联网 发布:18级毕业生 程序员 编辑:程序博客网 时间:2024/06/14 13:40
在c和c++中,我们不能返回一个数组,只能返回指向数组的一个指针。 在Java中,能形式上"返回一个数组",实际返回的仍然是指向数组的指针。不必担心那个返回数组是否可用,只要需要,它就会自动存在,当不需要时,垃圾回收器会在我们完成后自动清理。
Demo:
public class IceCream{ static String[] flav={"巧克力","草莓","蓝莓","香草","抹茶","香蕉"}; static String[] flavorSet(int n) { n=Math.abs(n)%(flav.length+1); String[] results =new String[n]; int[] picks=new int[n]; for(int i=0;i<picks.length;i++) { picks[i]=-1; } for(int i=0;i<picks.length;i++) { retry; while(true) { //Math.random() 从0-1随机选取一个数 int t=(int(Math.random()*flav.length); for(int j=0;j<i;j++) { if(picks[j]==t) continue retry; } picks[i]=t; results[i]=flav[t]; break; } } return results; } public static void main(String[] args) { for(int i=0;i<20;i++) { System.out.println("flavorSet("+i+")="); String[] f1=flavorSet(flav.length); for(int j=0;j<f1.length;j++) System.out.println("\t"+f1[j]); } } 当flavorSet()随机选择香料的时候,它保证以前出现过的一次随机选择不会再次出现。使用无限While()循环,不断地做出随机选择,直到发现未在picks数组出现过的一个元素为止。若t是一个已经在picks里出现过的数组,就用标签continue往回跳俩级,强制选择一个新t。
“`
0 0
- Thinking in Java-从数组中随机生成且不重复
- 【Java】随机生成范围[min,max]之间的整数数组,且元素值不重复
- Java中从一个数组中随机产生不重复的数
- js实现生成一个指定长度为n且随机不重复的数组
- 【Java】编程随机生成不重复的大写字母数组
- 【Java】随机生成不重复的字母数组
- java从数组中随机取出几个数并且不重复
- 生成随机且不重复的怪物和数字
- 生成一个不重复的随机数组
- java中生成不重复随机的数字
- java中生成不重复随机的数字
- java中生成不重复随机的数字
- java生成随机不重复id
- java生成随机不重复id
- 数组中随机添加不重复元素
- 随机数组不重复
- java中随机生成随机数及不重复的随机数字
- 随机从数组中取出指定的不重复的n个数
- Linux在目录中进入目录创建文件需要哪些权限
- Ubuntu14.04 16.04连Wi-Fi
- java IO 字节流 复制图片实例
- solr java 学习3 基本查询
- nginx旧版本升级新版本
- Thinking in Java-从数组中随机生成且不重复
- 我理解的微服务
- 模板设计模式
- 现在使用应该也是不晚的
- 点击listview item 改变其背景
- 如何利用GIT和oschina来管理项目
- java之反射机制
- memcached整合项目
- js提示Uncaught TypeError: Cannot read property 'options' of null