Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.Random;
- import java.util.Stack;
- import java.util.stream.IntStream;
- public class RandomAndStacks {
- public static void main(String[] args) {
- Stack <Integer> myStack = new Stack <>();
- Stack<Integer> tempStack = new Stack<>();
- int element;
- for (int i = 0; i < 555; i++) {
- element = generateRandomNums(25000, 41000);
- isDivisibleByThreeAndTwo(element, myStack);
- }
- // Using traditional for-loop to display contents of myStack
- /*
- for (int i = 0; i < myStack.size(); i++) {
- System.out.println(myStack.pop());
- }
- */
- // Using IntStream.range() to display contents of myStack
- /*IntStream.range(0, myStack.size()).forEach(i -> {
- System.out.println(myStack.pop());
- });*/
- System.out.println("Sorting the stack of numbers...");
- while (!myStack.isEmpty()) {
- int popped = myStack.pop();
- while (!tempStack.isEmpty() && tempStack.peek() > popped) {
- myStack.push(tempStack.pop());
- }
- tempStack.push(popped);
- }
- System.out.println(Arrays.toString(tempStack.toArray()));
- System.out.printf("How many random numbers are in the stack? %,d\n", tempStack.size());
- }
- public static int generateRandomNums(int min, int max) {
- if ((min > max) || (max - min +1) > Integer.MAX_VALUE) {
- throw new IllegalArgumentException();
- }
- return new Random().nextInt(max - min +1) + min;
- }
- public static void isDivisibleByThreeAndTwo(int randomNum, Stack<Integer> s) {
- if (randomNum % 3 == 0 && randomNum % 2 == 0) {
- s.push(randomNum);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment