for 循环 java 代码的解释

explanation of a for loop java code

谁能给我详细解释一下这是怎么回事;我对 ?:

感到困惑
 for (int i = 0; i < datasize; i++) {
            String data1value = data1.size() > i ? data1.get(i) : null;
            String data2value = data2.size() > i ? data2.get(i) : null;
            String data3value = data3.size() > i ? data3.get(i) : null;

三元 运算符用于防止在此处获得IndexOutOfBoundsException。如果 Collection 的大小比当前索引 i>,则通过 get(i) 分配该值,否则分配 null.

如果您直接将值分配为

 String data1value = data1.get(i);

如果循环运行超过 Collection 中的项目数,您的代码 可能 中断。

那个? : Java 中的运算符是 returns 两个值之一的表达式。

在Java中你可以写

if (a > b) {
  max = a;
}
else {
  max = b;
}

根据单个条件将单个变量设置为两个状态之一是 if-else 的常见用法,因此已经为其设计了一个快捷方式,即条件运算符 ?:。使用条件运算符,您可以像这样在一行中重写上面的示例:

max = (a > b) ? a : b;

它们被用作 Ravi Thapliyal 回复中提出的原因。