for循环中的第二行是什么意思,java中的代码表示是什么?

private List<int> channels = new List<int>();
private List<byte> packet= new List<int>();

      for (i = 0; i < 2; i++)
            {
                channels.Add((int)packet[2 + (2 * i)]);
                channels[i] += ((int)packet[2 + (2 * i) + 1] << 8) & 0xFF00;
            }


这是在Java中执行上述代码的正确方法吗?

            for (i = 0; i < 2; i++) {
            channels.add(packet.get(2 + (2 * i)));

            byte temp=channels.get(i);
            temp+=((packet.get(2 + (2 * i) + 1) << 8) & 0xFF00);
            channels.set(i, temp);
        }


以上工作正常,但是这样做会更好。感谢大家的回应:

    for (i = 0; i < 2; i++) {
          channels.set(i, (byte) (packet.get(2 + (2 * i))+((packet.get(2 + (2 * i) + 1) << 8) & 0xFF00)));
}

最佳答案

Java缺少的是运算符重载。因此,如果您使用ArrayList<Integer>,则需要使用get()
 set()而不是[]运算符。

另外,我认为您不可能在C#中为List<int>分配List<byte>

10-06 02:24