Java 替换列表中其他元素的索引时,列表中的其他元素不显示

Java 替换列表中其他元素的索引时,列表中的其他元素不显示,java,Java,我有一个包含三个元素的列表,但当我迭代时,我只删除一个元素并移动删除元素的位置 此时,仅显示删除的图元,其他图元不显示 我在下面提供了我的代码 请给我一些解决方案 public class ListRemove { public static void main(String []args){ int i =0; List<String> lst = new ArrayList<String>(); lst.add("Cat");

我有一个包含三个元素的列表,但当我迭代时,我只删除一个元素并移动删除元素的位置

此时,仅显示删除的图元,其他图元不显示

我在下面提供了我的代码

请给我一些解决方案

public class ListRemove {
  public static void main(String []args){
      int i =0;

    List<String> lst = new ArrayList<String>();
    lst.add("Cat");
    lst.add("Dog");
    lst.add("Rat");

   Iterator<String> iterate = lst.iterator();
   while(iterate.hasNext()){
       String str = iterate.next();
       if(str.equalsIgnoreCase("Dog")){
           iterate.remove();
           lst.set(0, str);
           System.out.println(str);
       }
   }

}
公共类列表删除{
公共静态void main(字符串[]args){
int i=0;
List lst=new ArrayList();
第1条添加(“Cat”);
第1条添加(“狗”);
第1条添加(“Rat”);
迭代器iterate=lst.Iterator();
while(iterate.hasNext()){
String str=iterate.next();
if(str.equalsIgnoreCase(“Dog”)){
iterate.remove();
第一组(0,str);
系统输出打印项次(str);
}
}
}
}

O/p: 狗


预期:Dog、Cat、Rat

为什么只有Dog作为输出,首先是因为您拥有
系统.out.println(str)语句,该语句仅在有名为Dog的元素时运行。对于其他元素,它不会打印任何内容

第二件事,如果您希望您的输出是Dog、Cat、Rat,那么使用
lst.set(0,str)无法获得它因为set方法将替换位置0处的元素。所以你的猫元素将被狗取代。因此,您的输出中不会出现Cat

编辑:

尝试使用
add()
方法,尽管
set()

公共类列表删除{
公共静态void main(字符串[]args){
int-swapPosition=0;
List lst=new ArrayList();
第1条添加(“Cat”);
第1条添加(“狗”);
第1条添加(“Rat”);

对于(inti=0;iYou不应该在遍历容器时更改它。它会在System.out.println(item)的位置上搞砸东西,它以狗和老鼠的形式出现。我需要狗猫老鼠您预期的输出是什么?现在您正在删除狗项并将第0项设置为狗。因此剩余的将是狗和老鼠。狗猫老鼠,下面一个伙伴评论了该设置(-,)方法将被替换,但我不希望猫被狗替换,只是它必须移动到列表中的其他元素。你需要在列表中找到一个字符串,并将其放在第一个位置?对吗?@Karthik在我的回答中,我解释了为什么你只得到狗和老鼠。你读了吗?
while(iterate.hasNext()){
   String str = iterate.next();
   if(str.equalsIgnoreCase("Dog")){
       iterate.remove();
       lst.add(0, str);
   }
}
public class ListRemove {
public static void main(String[] args) {

    int swapPosition = 0;

    List<String> lst = new ArrayList<String>();
    lst.add("Cat");
    lst.add("Dog");
    lst.add("Rat");

    for(int i=0;i<lst.size();i++){
        if(lst.get(i).equalsIgnoreCase("Dog")){
            swapPosition = i;
        }
    }

    Collections.swap(lst, 0, swapPosition);
    System.out.println("Results after swap operation:");
    for(String str: lst){
        System.out.println(str);
    }

}
}