Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在retainAll()之后,列表会变为null,尽管它应该包含元素?_Java_Arrays_Arraylist - Fatal编程技术网

Java 为什么在retainAll()之后,列表会变为null,尽管它应该包含元素?

Java 为什么在retainAll()之后,列表会变为null,尽管它应该包含元素?,java,arrays,arraylist,Java,Arrays,Arraylist,现在我可以得到列表A,列表B,我想得到一个新的列表,它是A-(A和B的交集)。但当我到达十字路口时,它是[] List<Map<String,String>> userDevices = clientdeviceService.getUserDevice(userId); List<String> selectedDevices = new ArrayList<String>(Arrays.asList(device

现在我可以得到列表A,列表B,我想得到一个新的列表,它是A-(A和B的交集)。但当我到达十字路口时,它是[]

        List<Map<String,String>> userDevices = clientdeviceService.getUserDevice(userId);
        List<String> selectedDevices = new ArrayList<String>(Arrays.asList(devices));//selectedDevices  is------[stress0012,stress0014,]
        List<String> originalDevices = new ArrayList<String>();
        List<String> originalDevicesRetain = new ArrayList<String>();//copy for operating
        for(Map<String,String> originalDevId : userDevices){
            originalDevices.add(originalDevId.get("DEVID"));
        }
        originalDevicesRetain.addAll(originalDevices);
        originalDevicesRetain.retainAll(selectedDevices);
        //originalDevicesRetain now is [],and it return false.
        originalDevices.removeAll(originalDevicesRetain);
        if(!originalDevices.isEmpty()){

        }
List userDevices=clientdeviceService.getUserDevice(userId);
List selectedDevices=new ArrayList(Arrays.asList(devices))//所选设备为------[stress0012,stress0014,]
List originalDevices=new ArrayList();
List originalDevicesRetain=新建ArrayList()//供操作的副本
对于(映射原始版本:userDevices){
originalDevices.add(originalDevId.get(“DEVID”);
}
originaldevicesrepain.addAll(originalDevices);
原始设备保留。保留(选定设备);
//originalDevicesRetain现在为[],返回false。
原始设备。移除所有(原始设备保留);
如果(!originalDevices.isEmpty()){
}

为什么originalDevices is[]中没有元素?

空列表与null不同。这可能是因为
originalDevicesRetain
没有任何
选择的设备;因此,没有什么可保留的。空列表与空列表不同。这可能是因为
原始设备保留
没有任何
选择的设备
;因此,没有什么可以保留的。