关于java:如何避免ArrayList中的空插入?

How to avoid null insertion in ArrayList?

本问题已经有最佳答案,请猛点这里访问。

如何避免在插入元素时在arraylist中插入空值?

1
2
3
4
5
6
ArrayList<String> al=new ArrayList<String>();
al.add(null);//should avoid
.
.
.
al.add("Ramesh");


避免使用EDOCX1[0]有时可能有害,并且可能隐藏可能的错误。

如果您担心在某个阶段获取NullPointerException,您可以简单地检查存储在ArrayList中的项目是否是null

不能禁止将null插入到ArrayList中。


1
2
3
4
5
6
7
8
9
10
11
12
13
ArrayList<String> al = new ArrayList<String>() {

            @Override
            public boolean add(String s ) {

                if( s != null ) {
                    return super.add( s );
                }
                return false;
            }
        };
al.add(null);
al.add("blabla");


你可以尝试类似的方法,但是如果你想做你想做的事情,你必须在ArrayList类中重写add()。使用此验证可以避免null

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args) {
    ArrayList<String> al=new ArrayList<String>();
    al=add(al,null);
    al=add(al,"Ramesh");
    al=add(al,"hi");
}

public static ArrayList<String> add(ArrayList<String> al,String str){
   if(str!=null){
      al.add(str);
      return al;
   }else {
      return al;
   }
}

在这种情况下,必须调用自定义add方法来添加元素


您可以创建自己的arraylist类(从原始类派生)并重写add方法然后您可以在添加时检查是否为空。

1
2
3
4
5
@Override
public boolean add(E e) {
  if (e == null) return false;
  else return super.add(e)
}

正如注释中所述,您可能也希望覆盖所有其他添加值的可能性。(见文件)

  • 添加(e e)
  • 加法(int index,e element)
  • addall(集合C)
  • addall(int index,集合C)
  • 集合(int index,e element)