我正在制作这个类,它是一个基于 HashMap 的自定义映射。我有一个 add 方法,如果添加一个对象,该对象将成为键,如果该对象当前不在列表中,则其值将为 1。但是,如果您添加当前在列表中的对象,其值将增加 1。因此,如果我添加 10 个完全相同的字符串,则键将是该字符串,值将是 10。我在实践中理解什么时候我遍历 map ,实际上只有一个对象要迭代,但是,我试图创建一个内部类,该内部类将定义一个迭代器,该迭代器将迭代同一对象,无论其值是多少次。我可以通过简单地使用 for 循环构造一个适当的 ArrayList 并为其创建一个迭代器来做到这一点,但这太低效了。有没有简单或更有效的方法来做到这一点?
最佳答案
您可以使用两个变量来做到这一点:
private T nextObj = null;
private int times = 0;
T next(){
if(times==0){
// get the next object and set the times variable to it's value in the hashmap
}
times--;
return nextObj;
}
关于java - 构建自定义迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214043/