- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我用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/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!