2016-10-16 42 views
1

すべての文字列をランダムに印刷する方法はありますが、重複はありません。私はリスト、Collecton.shuffleを使いたくない。Javaすべての文字列の配列をランダムに印刷する方法

私が試してみてください。

String names[] = { "name1", "name2", "name3", "name4", "name5" }; 
System.out.println(names[rand.nextInt(groupMembers.length - 1)]); 

は、私はすべての名前を印刷したいのですが、一度だけシャッフルして。このような 何か:

NAME4は、NAME1、NAME2、name5、ここでNAME3

+1

'コレクションと間違っている何。シャッフル? –

+0

シャッフルは一度だけどういう意味ですか?あなたはそれがリストから無作為な名前を印刷し続けることを意味しますか?それとも、リスト全体をランダムな順序で印刷したいのですか。 –

答えて

0

はコードですが、何を求めていることは、不必要にコードを複雑にされています

public static void main(String [] args) { 
     String names[] = { "name1", "name2", "name3", "name4", "name5" }; 
     int upper = names.length; 
     int lower = 0; 
     int r=0; 

     Set<Integer> uniqueList = new HashSet<Integer>();//This is the set which is used to make sure elements in the array are printed only once 
     for(int count=0;count<names.length;count++){ 
      uniqueList.add(count); 
     } 

     while(!uniqueList.isEmpty()){ 
      r = (int) (Math.random() * (upper - lower)) + lower;//generate a random number 
      if(uniqueList.contains(r)){//if the random number lies between array length, then print the random name and remove it from set so that it wont print duplicate 

       uniqueList.remove(r); 
       System.out.println(names[r]); 
      } 
     } 
    } 
+0

ありがとうございました。 – LyuboN

+0

upvoteの提供に役立っている場合、またはこれがあなたが探している回答であれば、それを親切に回答として受け入れます –

関連する問題