fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.util.stream.Stream;
  5. import java.lang.*;
  6. import java.io.*;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. public static void main (String[] args) throws java.lang.Exception
  12. {
  13. Random rand = new Random();
  14. Person[] people = new Person[100];
  15.  
  16. for (int i = 0; i < people.length; i++) {
  17. Person p = new Person();
  18. people[i] = p;
  19.  
  20. // Sex
  21. p.setSex(rand.nextBoolean() ? "Male" : "Female");
  22. // p.setSex(i % 2 == 0 ? "Male" : "Female");
  23.  
  24. // Age (normal distribution with min 0, max 100, and mean 50
  25. int age = (int)(rand.nextGaussian() * 50);
  26. while (Math.abs(age) > 50)
  27. age = (int)(rand.nextGaussian() * 50);
  28. p.setAge(age + 50);
  29.  
  30. // Religion
  31. int maxA = (int) (people.length * .1),
  32. maxB = (int) (people.length * .5) + maxA;
  33. if (i < maxA)
  34. p.setReligion("A");
  35. else if (i < maxB)
  36. p.setReligion("B");
  37. else
  38. p.setReligion("C");
  39. }
  40.  
  41. long numMale = Stream.of(people).filter(p -> p.sex.equals("Male")).count();
  42. int minAge = Stream.of(people).mapToInt(p -> p.age).min().orElse(0);
  43. double avgAge = Stream.of(people).mapToInt(p -> p.age).average().orElse(0);
  44. int maxAge = Stream.of(people).mapToInt(p -> p.age).max().orElse(0);
  45. long numA = Stream.of(people).filter(p -> p.religion.equals("A")).count();
  46. long numB = Stream.of(people).filter(p -> p.religion.equals("B")).count();
  47. long numC = Stream.of(people).filter(p -> p.religion.equals("C")).count();
  48. System.out.println(people.length + " people");
  49. System.out.println("Num Male: " + numMale);
  50. System.out.println("Min Age: " + minAge);
  51. System.out.println("Avg Age: " + avgAge);
  52. System.out.println("Max Age: " + maxAge);
  53. System.out.println("Religion A: " + numA);
  54. System.out.println("Religion B: " + numB);
  55. System.out.println("Religion C: " + numC);
  56. }
  57. }
  58. class Person {
  59. String sex; public void setSex(String s){sex = s;}
  60. int age; public void setAge(int a){age = a;}
  61. String religion; public void setReligion(String r){religion = r;}
  62. public String toString() { return sex + age + religion; }
  63. }
Success #stdin #stdout 0.24s 321088KB
stdin
Standard input is empty
stdout
100 people
Num Male: 48
Min Age: 0
Avg Age: 51.83
Max Age: 100
Religion A: 10
Religion B: 50
Religion C: 40