显示String Array中的一个项目,并使用Math.Random排除一个项目

时间:2014-06-10 15:30:13

标签: java arrays random linked-list

如何使用Math.Random显示数组列表中的一个项目,同时排除发现等于的项目?此代码搜索链接列表数组,以查找它是否与字符串数组中的任何项匹配,如果是,它将从字符串数组中打印一个尚未在链接列表中的随机元素?

public static void pagesYouMayLike(LinkedList[] likes, int index, String [] likeArray){

  for(int i=0; i<likes[index].size(); i++){

     for(int j=0; j<5; j++ ){

        if(likes[index].listIterator(i).next().equals(likeArray[j])){

           int idx = new Random().nextInt(likeArray.length);

           System.out.println(likeArray[idx]);

        }//if
     }//for
   }//for
 }//pages you may like

2 个答案:

答案 0 :(得分:0)

尝试这样做:

 if(likes[index].listIterator(i).next().equals(likeArray[j])){

       int idx = new Random().nextInt(likeArray.length);

       for(int i =0; i< likes.size(); i++){ //traverse through the linked list array
             if(likeArray[idx] != likes[i]){  // and check to see if this is a unique string.
                 System.out.println(likeArray[idx]);
                 break;
             }else{
                 idx = new Random().nextInt(likeArray.length); //pick another random string
             }
       }

    }//if

将所选的随机字符串与链接列表数组进行比较,以查看它是否唯一。如果它是它应该打印出来并打破循环。你可能需要在for循环中使用迭代器,但我希望你能得到这个想法。

答案 1 :(得分:0)

而不是担心迭代器,使用for-each循环会容易得多:

for(String s : likes) {
    if (Arrays.asList(likeArray).contains(s)) {
        int index = (new Random()).nextInt(likeArray.length);
        System.out.println(likeArray[index]);
    }
}

如果您只想显示一个随机值,只需在找到随机值后在循环中放置一个中断。