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、本博客的目的是知识交流所用,转载自其它博客或网站,作为自己的参考资料的,感谢这些文章的原创人员

posted @ 2016-05-04 11:14  菜鸟奋斗史  阅读(797)  评论(0编辑  收藏  举报