Android Open Source - OneSearch Distinct Random Generator






From Project

Back to project page OneSearch.

License

The source code is released under:

MIT License

If you think the Android project OneSearch listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package chrisjluc.funsearch.wordSearchGenerator.generators;import java.lang.Integer;import java.lang.Object;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
//from   w w w .ja  v  a2  s.  com
/**
 * Returns a distinct element from a given array in random order
 * until there is no elements left, it will then return null
 *
 * Created by chrisjluc on 2014-10-17.
 */
public class DistinctRandomGenerator<T> {
    private Object[] objects;
    private int maxIndex;
    private Random r = new Random();

    public DistinctRandomGenerator(Object[] o){
        objects = Arrays.copyOfRange(o, 0, o.length);
        maxIndex = o.length-1;
    }

    public DistinctRandomGenerator(List<T> o){
        objects = Arrays.copyOfRange(o.toArray(), 0, o.size());
        maxIndex = o.size()-1;
    }

    public DistinctRandomGenerator(int n){
       objects = new Integer[n];
        for(int i = 0; i < n; i++)
            objects[i] = i;
        maxIndex = n - 1;
    }

    public Object next(){
        if(maxIndex <= -1)
            return null;
        else if(maxIndex == 0)
        {
            maxIndex = -1;
            return objects[0];
        }
        int index = r.nextInt(maxIndex+1);

        Object ret = objects[index];
        if(index != maxIndex)
            objects[index] = objects[maxIndex];
        maxIndex--;

        return ret;
    }
}




Java Source Code List

chrisjluc.funsearch.ApplicationTest.java
chrisjluc.funsearch.WordSearchManager.java
chrisjluc.funsearch.adapters.WordSearchGridAdapter.java
chrisjluc.funsearch.adapters.WordSearchPagerAdapter.java
chrisjluc.funsearch.base.BaseActivity.java
chrisjluc.funsearch.models.GameDifficulty.java
chrisjluc.funsearch.models.GameMode.java
chrisjluc.funsearch.models.GameType.java
chrisjluc.funsearch.ui.MenuActivity.java
chrisjluc.funsearch.ui.ResultsActivity.java
chrisjluc.funsearch.ui.components.GameButton.java
chrisjluc.funsearch.ui.components.GameTextView.java
chrisjluc.funsearch.ui.gameplay.PauseDialogFragment.java
chrisjluc.funsearch.ui.gameplay.WordSearchActivity.java
chrisjluc.funsearch.ui.gameplay.WordSearchFragment.java
chrisjluc.funsearch.ui.gameplay.WordSearchGridView.java
chrisjluc.funsearch.ui.gameplay.WordSearchViewPager.java
chrisjluc.funsearch.wordSearchGenerator.generators.DistinctRandomGenerator.java
chrisjluc.funsearch.wordSearchGenerator.generators.WordSearchGenerator.java
chrisjluc.funsearch.wordSearchGenerator.models.Node.java
chrisjluc.funsearch.wordSearchGenerator.models.Point.java
chrisjluc.funsearch.wordSearchGenerator.models.PossibleInstance.java