리스트 (또는 배열) 순서 섞기 (shuffle)

2018. 3. 27. 13:45모두모두 개발자다요/JAVA

흔한 웹개발자 팔자에 없던 사기성 랜덤 룰을 짜야할 일이 생겨놔서 한번 찾아 써 적용해보았음..

배열 또는 리스트 원소의 순서를 랜덤하게 섞음


(java.util.List 사용 버전)

public List<string> shuffleList(List<string> list) throws Exception {

    for (int from = 0; from < list.size(); from++ ) {

        int to = (int) (Math.random() % (list.size()));

        String tmp = list.get(from);

        list.set(from, list.get(to));

        list.set(to, tmp);

    }

    return list;

}

....

클라이언트 모듈에서 한 번 더 꼬으라고 요구가 들어옴..

따라서 동일한 메커니즘을 javascript 으로 구현

(파라미터는 list = ['요','소','를','가','진','배','열','object'])

function shuffleList(list) {

    var from, tmp, from;

    for (from = 0; to < list.length; from++) {

        to = Math.floor(Math.random() * list.length);

        tmp = a[from];

        a[from] = a[to];

        a[to] = tmp;

    }

    return list;

}


그렇게 만들고 다시 찾아보니..

...

...

java.util.Collections.shuffle(List<?> list) 

삽~질 !!!