Foreach与Random
【记忆贴】
1)foreach语句可以用于数据或者其他任何Iterable,但是并不意味着数组肯定也是一个Iterable,而任何自动包装也不会自动发生。
package thinking.in.java.demo; import java.util.Arrays; public class TestForeach { /** * @param args */ public static void main(String[] args) { test(Arrays.asList(1, 2, 3)); String[] strings = { "A", "B", "C" }; // 错误的用法test(strings) test(Arrays.asList(strings)); } public static <T> void test(Iterable<T> ib) { for (T t : ib) { System.out.print(t + " "); } } }
2)Map是将对象映射到其他对象的能力是一种解决编程问题的杀手锏。例如考虑一个程序,它将用来检查Java的Random类的随机性。理想吧状态下,Random可以将产生理想的数字分布,弹药想测试它,则需要生成大量的随机数,并对落入各种不同范围的数据进行计数。Map可以很容易的解决该问题。在本例中,键是由Random产生的数字,而值是该数字出现的次数:
package thinking.in.java.demo; import java.util.HashMap; import java.util.Map; import java.util.Random; //page234 public class Stastic { /** * @param args */ public static void main(String[] args) { Map<Integer, Integer> map=new HashMap<Integer,Integer>(); Random random=new Random(47); for(int i=0;i<10000;i++){ //0-20(不包括20) int r=random.nextInt(20); Integer count=map.get(r); map.put(r, count==null?1:count+1); } System.out.println(map); } }
随机数种子seed:Random random=new Random(47);指定随机数种子,无论你把程序运行多少遍,产生的随机数序列都是相同的,如果不指定种子的话,则每次产生的随机数序列都不同。
本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/ysw-go/
1、本博客的原创原创文章,都是本人平时学习所做的笔记,如有错误,欢迎指正。
2、如有侵犯您的知识产权和版权问题,请通知本人,本人会即时做出处理文章。
3、本博客的目的是知识交流所用,转载自其它博客或网站,作为自己的参考资料的,感谢这些文章的原创人员