我的数组如下所示:

    unitList = new ArrayList<String>( Arrays.
            asList(result.getJSONObject( position ).
                    getString( "units" ).replace("[", "").
                    replace("]", "").
                    split(",")));


当我使用此函数时,我想知道该数组中是否至少有一个元素:

unitList.size()


它返回此:

06-30 02:04:51.453 18653-18653/search.bert.searchviewtest I/unitList.size: 1
06-30 02:04:51.453 18653-18653/search.bert.searchviewtest I/unitList: []
06-30 02:04:56.123 18653-18653/search.bert.searchviewtest I/unitList.size: 6
06-30 02:04:56.123 18653-18653/search.bert.searchviewtest I/unitList: ["1", "2", "3", "4", "5", "6"]


这很奇怪,因为[]没有任何元素,但是返回1。如果列表为[“ 1”],它还会返回1吗?我怎么知道列表是否为空?

补充1:

我的日志代码如下:

    Log.i("unitList.size", String.valueOf( ( unitList.size() ) ) );
    Log.i("unitList",unitList.toString());

最佳答案

如果只想检查列表中是否至少有一个元素,则可以使用列表中的isEmpty()函数。

但是,如果在不应该返回的情况下返回true(并且很可能在为空时返回1),则可能会传递空字符串“”

07-24 13:12