如果其中一个值为空,如何在Java中获取元组?索引自动绑定

如果其中一个值为空,如何在Java中获取元组?索引自动绑定,java,list,tuples,indexoutofboundsexception,java-pair-rdd,Java,List,Tuples,Indexoutofboundsexception,Java Pair Rdd,我得到的不是这个,而是一个错误 [(1,a),(2,b),(3,c),(4,null),(5,null)] 我知道原因,因为它有3个元素,所以我无法从wtpList检索更多内容。 但如果值不存在,我可以存储null。您可以迭代两个不同大小的列表: [1, 2, 3, 4, 5] [a, b, c] Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 3 out of bounds for

我得到的不是这个,而是一个错误

[(1,a),(2,b),(3,c),(4,null),(5,null)]
我知道原因,因为它有3个元素,所以我无法从wtpList检索更多内容。
但如果值不存在,我可以存储null。

您可以迭代两个不同大小的列表:

[1, 2, 3, 4, 5]
[a, b, c]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 3
        at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
        at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
        at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
        at java.base/java.util.Objects.checkIndex(Objects.java:359)
        at java.base/java.util.ArrayList.get(ArrayList.java:427)
        at App.main(App.java:28)
并在以下内容之后添加空值:

for (int i = 0; i < wtpList.size(); i++) {
    SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), wtpList.get(i)));
}
for(int i=wtpList.size();i
如果不对列表做任何假设,那么您必须更改代码以涵盖所有情况

for (int i = wtpList.size(); i < wtpmList.size(); i++) {
    SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), null));
}
int max\u list=Math.max(wtpmList.size(),wtpList.size());
对于(int i=0;i=wtpmList.size())
SubPartandMaster.add(新对(null,wtpList.get(i));
else如果(i>=wtpList.size())
SubPartandMaster.add(新对(wtpmList.get(i),null));
其他的
SubPartandMaster.add(新对(wtpmList.get(i)、wtpList.get(i));
}

您可以覆盖
get
,使其工作方式类似于
poll
,如果不存在元素,则返回空值:

  int biggest_list = Math.max(wtpmList.size(), wtpList.size());
  for (int i = 0; i < biggest_list; i++) {
       if(i >= wtpmList.size())
          SubPartandMaster.add(new Pair<String, String>(null, wtpList.get(i)));
       else if (i >= wtpList.size())
          SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), null));
       else
          SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), wtpList.get(i)));
    }
List wtpList=new ArrayList(){
@凌驾
公共字符串get(int-idx){
返回(idx
示例代码将非常有用。如果可以提供,您只需在程序中替换
List wtpList=new ArrayList()与我的上面和你的程序应该正常工作。
for (int i = wtpList.size(); i < wtpmList.size(); i++) {
    SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), null));
}
  int biggest_list = Math.max(wtpmList.size(), wtpList.size());
  for (int i = 0; i < biggest_list; i++) {
       if(i >= wtpmList.size())
          SubPartandMaster.add(new Pair<String, String>(null, wtpList.get(i)));
       else if (i >= wtpList.size())
          SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), null));
       else
          SubPartandMaster.add(new Pair<String, String>(wtpmList.get(i), wtpList.get(i)));
    }
List<String> wtpList = new ArrayList<String>() {
  @Override
  public String get( int idx ) {
    return( idx < size() ? super.get( idx ) : null );
  }
};