Java LinkedHashSet迭代器无缘无故进入无限循环

Java LinkedHashSet迭代器无缘无故进入无限循环,java,android,Java,Android,我在这个主题上找到了3-4个主题,但它们没有任何帮助,因为我已经尝试了那里的人建议的任何主题开场白。它已经在我的代码中了 // Set the images of users that own this item // TODO refactor this private LinkedHashSet<UserBasic> itemUsers; Iterator<UserBasic> usersIterator = itemUsers.iterator(); // We

我在这个主题上找到了3-4个主题,但它们没有任何帮助,因为我已经尝试了那里的人建议的任何主题开场白。它已经在我的代码中了

// Set the images of users that own this item
// TODO refactor this
private LinkedHashSet<UserBasic> itemUsers;
Iterator<UserBasic> usersIterator = itemUsers.iterator();

// We have 4 imageViews available for displaying users avatars, but we might not need them all
ArrayList<Integer> initialUserAvatarViews = new ArrayList<Integer>();
initialUserAvatarViews.add(R.id.iItemProfileUserImageSlotOne);
initialUserAvatarViews.add(R.id.iItemProfileUserImageSlotTwo);
initialUserAvatarViews.add(R.id.iItemProfileUserImageSlotThree);
initialUserAvatarViews.add(R.id.iItemProfileUserImageSlotFour);

int initialUserAvatarViewsCount = initialUserAvatarViews.size();

int a = 0;
while (usersIterator.hasNext()) {
    Log.d("LOOPING  AT 263", "I CANT STOP LOOPING");
    if (a < initialUserAvatarViewsCount) {
        FetchableImageView fetchableImageView = (FetchableImageView) findViewById(initialUserAvatarViews.get(a));
        fetchableImageView.setVisibility(View.VISIBLE);
        fetchableImageView.setImage(C.API.WEB_ADDRESS + C.API.IMAGES_USERS_FOLDER_THUMBNAIL + usersIterator.next().getUserAvatar(),
                R.drawable.images_default_avatar_male);
        a++;
    }
}
//设置拥有此项目的用户的图像
//TODO重构此
私有LinkedHashSet项目用户;
迭代器usersIterator=itemUsers.Iterator();
//我们有4个图像视图可用于显示用户的头像,但我们可能不需要全部
ArrayList initialUserAvatarViews=新建ArrayList();
初始化useravatarviews.add(R.id.iItemProfileUserImageSlotOne);
初始化useravatarviews.add(R.id.iItemProfileUserImageSlotTwo);
初始化useravatarviews.add(R.id.iItemProfileUserImagesLottThree);
初始化useravatarviews.add(R.id.iItemProfileUserImageSlotFour);
int initialUserAvatarViewsCount=initialUserAvatarViews.size();
int a=0;
while(usersIterator.hasNext()){
Log.d(“在263处循环”,“我无法停止循环”);
if(a
通过调用usersIterator.next()推进光标。可能您的执行流停止进入IF循环,并且永远不会调用next()。这就是为什么会有一个无限循环。确保每次迭代都调用usersIterator.next(),或者在IF条件失败时调用break。

通过调用usersIterator.next()推进光标。可能您的执行流停止进入IF循环,并且永远不会调用next()。这就是为什么会有一个无限循环。确保每次迭代都调用usersIterator.next(),或者在IF条件失败时调用break。

通过调用usersIterator.next()推进光标。可能您的执行流停止进入IF循环,并且永远不会调用next()。这就是为什么会有一个无限循环。确保每次迭代都调用usersIterator.next(),或者在IF条件失败时调用break。

通过调用usersIterator.next()推进光标。可能您的执行流停止进入IF循环,并且永远不会调用next()。这就是为什么会有一个无限循环。确保每次迭代都调用usersIterator.next(),或者在IF条件失败时调用break。

我认为出现了以下情况。在while循环中,a变量等于initialUserAvatarViewsCount,因此if语句停止运行。因此,由于if语句不再运行,您将停止调用userIterator.next(),这意味着迭代器将始终有一个next,从而使您进入无限循环。

我相信发生了以下情况。在while循环中,a变量等于initialUserAvatarViewsCount,因此if语句停止运行。因此,由于if语句不再运行,您将停止调用userIterator.next(),这意味着迭代器将始终有一个next,从而使您进入无限循环。

我相信发生了以下情况。在while循环中,a变量等于initialUserAvatarViewsCount,因此if语句停止运行。因此,由于if语句不再运行,您将停止调用userIterator.next(),这意味着迭代器将始终有一个next,从而使您进入无限循环。

我相信发生了以下情况。在while循环中,a变量等于initialUserAvatarViewsCount,因此if语句停止运行。因此,由于if语句不再运行,因此您停止调用userIterator.next(),这意味着迭代器将始终有一个next,将您带入无限循环。

hasNext()
如果迭代器中有更多项,则返回true。实际上,它本身并没有做任何事情

要移动到下一个元素,因此有可能
hasNext
返回false,您需要在某个时候调用
usersIterator.next()

hasNext()
如果迭代器中有更多项,则返回true。实际上,它本身并没有做任何事情

要移动到下一个元素,因此有可能
hasNext
返回false,您需要在某个时候调用
usersIterator.next()

hasNext()
如果迭代器中有更多项,则返回true。实际上,它本身并没有做任何事情

要移动到下一个元素,因此有可能
hasNext
返回false,您需要在某个时候调用
usersIterator.next()

hasNext()
如果迭代器中有更多项,则返回true。实际上,它本身并没有做任何事情

要移动到下一个元素,因此有可能
hasNext
返回false,您需要在某个时候调用
usersIterator.next()

如果我在if语句之外调用usersIterator.next(),我会得到一个NoSuchElementException。我将尝试调用breakif,如果我调用了usersIterator.next(),在if语句之外,我会得到一个NoTouchElementException。我将尝试调用breakif,如果我调用了usersIterator.next(),在if语句之外,我会得到一个NoTouchElementException。我将尝试调用breakif,如果我调用了usersIterator.next(),在if语句之外,我会得到一个NoTouchElementException。我会试着打电话给break