Objects are a powerful software engineering construct, and Java uses them extensively. While developing Android applications you need fast way of doing something. For example:
Often u need randomized Array which u will save state of stage or something.
In that case how you change order of Array randomly???
There are 2 famous way for this:
Collections.shuffle(Arrays.asList(arr));This way is easy to use
And the second way is FAST
for (int i=0; i < arr.length; i++) { int randomPosition = randomizer.nextInt(arr.length); String temp = arr[i]; arr[i] = arr[randomPosition]; arr[randomPosition] = temp; }The full example source code is following:
package com.example; import java.util.Arrays; import java.util.Collections; import java.util.Random; public class Shuffle { public static void main(String[] args) { String[] arr = new String[999999]; Random randomizer = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = "test"+i; } long startTime = System.currentTimeMillis(); suffleEasy(arr); System.out.println("suffleEasy=>"+(System.currentTimeMillis() - startTime)); startTime = System.currentTimeMillis(); suffleFast(arr, randomizer); System.out.println("suffleFast=>"+(System.currentTimeMillis() - startTime)); } private static void suffleEasy(String[] arr){ Collections.shuffle(Arrays.asList(arr)); } private static void suffleFast(String[] arr, Random randomizer){ for (int i=0; i < arr.length; i++) { int randomPosition = randomizer.nextInt(arr.length); String temp = arr[i]; arr[i] = arr[randomPosition]; arr[randomPosition] = temp; } } }While running this example in my case the output was:
suffleEasy=>84
suffleFast=>33
No comments:
Post a Comment