簡體   English   中英

在打印過程中跳過ArrayList的特定值

[英]Skipping a particular value of ArrayList during printing

我的代碼如下:

ArrayList<Integer> al = new ArrayList();
al.add(1);
al.add(2);
al.add(3);
al.add(3);
al.add(4);

我在打印時需要以下模式:

[1,2,4]

我同時嘗試了循環和迭代器,但沒有得到想要的輸出。

幫我整理一下!

我找到了解決方案,那就是

for(int i=0;i<al.size();i++) {
if(al.get(i)!=3) 
   System.out.println(al.get(i));
  }

謝謝你的幫助

現在我想獲得相同的輸出,而不是通過打印,而是通過刪除ArrayList的元素,我嘗試了相同的條件,但是出現了異常

答案是

Iterator<Integer> iter = al.iterator();
        while (iter.hasNext()) {
            if (iter.next().intValue() == 3) {
                iter.remove();
            }
        }
        System.out.println(al);

逐步檢查ArrayList中的所有項目,並測試它們是否等於3 ,如果不相等,則打印它們。

for (Integer i : al)  //for each Integer in the al list
{
  if (!i.equals(3))  //if it is NOT (!) equal to 3
  {
    System.out.println(i);  //then print it
  }
}

顯然,如果您要跳過的數字不只是3,則需要擴展if使用的條件。

從列表中刪除元素的注意事項

如果您嘗試使用這種方法從內環路列表中刪除,你會遇到的問題與ConcurrentAccessException ,這是在處理這個問題

如果您想獲取list元素,並且根據您的輸出,似乎您想在列表中打印1甚至偶數

for(int i=0; i< a1.size(); i++)  //iterate over List
{
    if(a1.get(i)%2=0 || a1.get(i) == 1) //print if 1 or even
      System.out.println(a1.get(i));
}

您還可以使用forEach方法(Java 8):

al.forEach(v -> {if(v!=3) System.out.println(v);});

在列表中添加所需的跳過值,並在打印之前對照該列表進行檢查

我的代碼:運行並發表評論(請發表意見)

import java.util.*;
public class Mycode{

 public static void main(String []args){
     ArrayList<Integer> al = new ArrayList();
al.add(1);
al.add(2);
al.add(3);
al.add(3);
al.add(4);

      ArrayList<Integer> al1 = new ArrayList();
      al1.add(3);
      al1.add(2);
      int flag=0;
      for(int j=0; j< al.size(); j++)
      {
          flag=0;
      for(int i=0; i< al1.size(); i++)
      {
      if(al.get(j)==al1.get(i))
      flag=1;
      }
        if(flag==0)
      System.out.println(al.get(j));
      }
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM