如何使用Math显示Array列表中的一个项目?随机,同时排除项目,发现等于?这段代码搜索链表数组来查找它是否匹配字符串数组中的任何项,如果匹配,它将打印字符串数组中一个不在链表中的随机元素。
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
试着这样做:
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循环中使用迭代器,但我希望你能理解。
不用担心迭代器,使用for-each循环会容易得多:
for(String s : likes) {
if (Arrays.asList(likeArray).contains(s)) {
int index = (new Random()).nextInt(likeArray.length);
System.out.println(likeArray[index]);
}
}
如果您想只显示一个随机值,只需在找到随机值后在循环中插入一个断点