如何解决为什么Arrays.asListlistOfPoints.containspoint起作用?
我在一个示例中遇到了以下代码,但不明白为什么会起作用。
首先用随机值定义点数组:
Point[] randPoints = new Point[5];
for (int i=0; i<randPoints.length; i++)
randPoints[i] = new Point( (int)(Math.random() * 40),(int) (Math.random()* 10) );
然后循环检查这些点是否具有当前的x,y位置:
for ( int y = 0; y < 10; y++ )
{
for ( int x = 0; x < 40; x++ )
{
if ( Arrays.asList( randPoints ).contains( new Point(x,y) ) )
System.out.print( "P" );
else
System.out.print( "." );
}
System.out.println();
}
在contains()中完成比较时,Arrays.asList(randPoints)返回什么?为什么可以进行这种比较?
感谢您的支持。
解决方法
这里发生的所有事情是将数组包装在List
容器中,并且正在调用contains
(这是List方法)。要查看包含的内容,只需阅读documentation。
如果此列表包含指定的元素,则返回true。更正式地讲,当且仅当此列表包含至少一个元素(e == null?e == null:o.equals(e))时,才返回true。
您可以轻松完成此操作而无需包装数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。