Arrays.asList()。包括()给出错误的结果 [英] Arrays.asList().contains() giving wrong result

查看:175
本文介绍了Arrays.asList()。包括()给出错误的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

code:

private static final int[] GOOGLE_DIRECTION_ID_FOR_MATCH = { 11, 12, 13,
            14, 15 };
Log.e(TAG, "index : "
                        + Arrays.asList(GOOGLE_DIRECTION_ID_FOR_MATCH).indexOf(11));

Log.e(TAG, "contains : "
                        + Arrays.asList(GOOGLE_DIRECTION_ID_FOR_MATCH)
                                .contains(11));

以上陈述日志:

index : -1
contains : false

我尝试过所有其他值。

I tried for all other values too.

推荐答案

<一个href=\"http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList%28T...%29\">Arrays#asList返回的通用的类型。

解决方案之一是阵列更改为整数而不是 INT

One solution is to change your array to Integer instead of int:

private static final Integer[] GOOGLE_DIRECTION_ID_FOR_MATCH = { 11, 12, 13,
            14, 15 };

请参阅此<一个href=\"http://mlangc.word$p$pss.com/2010/05/01/be-carefull-when-converting-java-arrays-to-lists/\">very有用的链接我找到了。

<一个href=\"http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList%28T...%29\">Arrays#asList返回列表&LT; INT []&GT; ,而不是列表&LT;整数GT; (你想要什么 - 回想一下,有没有这样的事情列表与LT; INT&GT; )。搜索结果
此外,这是很好的一提的是,如果一个 INT 是盒装为整数,那么要小心。因为例如: 整数(11) != 11

Arrays#asList returns List<int[]> and not List<Integer> (What you wanted - Recall that there is no such a thing List<int>).

Also, it's good to mention that if an int is boxed to Integer, then be careful.. Because for example: Integer(11) != 11.

这篇关于Arrays.asList()。包括()给出错误的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆