gpt4 book ai didi

java - 我想我迭代 key(itr) 的方式错误?

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:51 25 4
gpt4 key购买 nike

这是我用Java编写的代码,itr是键的迭代器,我在迭代键时遇到问题,代码的问题是:我们给出一个由2n个整数组成的数组,其中这个整数数组中的每一对分别代表恐龙的出生年份和死亡年份。我们要考虑的有效年份范围是[-100000 到 2005]。例如,如果输入是:

-80000 -79950 20 70 22 60 58 65 1950 2004

这意味着第一只恐龙的出生年份和死亡年份分别为 –80000 和 –79950。同样,第二只恐龙的生命周期为 20 岁到 70 岁,依此类推。

我们想知道曾经存活过的恐龙数量最多。给定上面的 2n 个整数数组,编写一个方法来计算这个值。

编写以下方法之一:

C/C++:int find_max_dinosaur (int[] 年);

Java:public int findMaxdinosaur(int[]年);

package usingarray;


int dinoStrength;
int deathOfDino;
int dinoBirthAge;
int currentDinoBirthAge;
int currentDinoDeathAge;
int count;

TreeMap dino=new TreeMap();
List<Integer> dinos = new ArrayList<Integer>();

Scanner sc=new Scanner(System.in);


public void getDionoAges()
{
System.out.println("How many Dinosaur");
dinoStrength=sc.nextInt()+1;
for(int i=1;i<dinoStrength;i++)
{
System.out.println("Please enter "+i+" dino birth age and death age:");
dino.put(sc.nextInt(),sc.nextInt());
}
}

public void logic()
{
Collection value = dino.values();
Collection key = dino.values();
Iterator it = value.iterator();
Iterator itr = key.iterator();

System.out.println("logic");

for(int x=0;x<dinoStrength;x++)
{
System.out.println("in for");
while(it.hasNext() && itr.hasNext())
{
System.out.println("in while");
deathOfDino=(int) it.next();
//currentDinoDeathAge=(int) it.next();
dinoBirthAge=(int) itr.next();

while(itr.hasNext())
{
System.out.println("In itr while");
currentDinoBirthAge=(int) itr.next();
if(dinoBirthAge<=currentDinoBirthAge && currentDinoBirthAge<=deathOfDino)
{
count++;
System.out.println(count);
}
}
dinos.add(count);
}
}
}

public void display()
{
Iterator<Integer> it = dinos.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args) {
VickyDino vd=new VickyDino();
vd.getDionoAges();
vd.logic();
vd.display();
}

}

最佳答案

我认为你的问题是这样的:

Collection value = dino.values();
Collection key = dino.values();

您使用了 dino.values() 两次;第二个可能应该是dino.keys()。但是,由于您将出生年份放入键中,将死亡年份放入值中,因此您可能想交换两者。注意:我没有检查你的循环中的逻辑是否正确。

关于java - 我想我迭代 key(itr) 的方式错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com