| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 17238 人关注过本帖
标题:java中怎么判断List<int[]>中是否包含某元素
只看楼主 加入收藏
gxfsx
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-6-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
java中怎么判断List<int[]>中是否包含某元素
程序代码:
java中怎么判断List<int[]>中是否包含某元素。如:
List<int[]> list=new ArrayList<int[]>();
      list.add(new int[]{0,1});
      list.add(new int[]{3,5});
      list.add(new int[]{2,8});
      list.add(new int[]{4,1});
      list.add(new int[]{6,5});
      list.add(new int[]{8,15});
要判断list集合中是否包含new int[]{6,5}这个数组元素,可是用if(list.contains(new int[]{6,5})) 判断不出来,结果总是为假;然后用if(list.equals(new int[]{6,5})也判断不出来,结果也总是为假。不要用循环的方法。
请问该用什么方法判断???


[ 本帖最后由 gxfsx 于 2015-4-1 22:31 编辑 ]
搜索更多相关主题的帖子: java 元素 
2015-04-01 22:07
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
收藏
得分:10 
你不想写循环,那么你用封装好的,它也会帮你循环的!
  你可以去看看API,List的contains采用的是o==null ? e==null : o.equals(e) ; 你的List中元素是对象,所以肯定是false的,你add的new int[]{6,5},和你判断时候的new int[]{6,5} ,这两个对象不是同一个对象,他们的内存地址不同! 按照你的判断的意思,你只是判断他们的上层的值是否相等,所以你必须循环判断!

楼上,楼下的一定要幸福开心哦!
2015-04-02 11:25
gxfsx
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-6-29
收藏
得分:0 
哦,这样啊。谢谢你的回复!循环判断是不是这样:
程序代码:
for(int i=0;i<list.size();i++){
   if(list.get(i)[0]==6&&list.get(i)[1]==5){   
        条件为真
        break;
    }

}

还是有更好循环判断法。
2015-04-03 17:18
gxfsx
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-6-29
收藏
得分:0 
回复 2楼 w123012306
哦,这样啊。谢谢你的回复!循环判断是不是这样:
程序代码:
程序代码:
for(int i=0;i<list.size();i++){
   if(list.get(i)[0]==6&&list.get(i)[1]==5){  
        条件为真
        break;
    }

}
还是有更好循环判断法。
2015-04-03 17:19
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:10 
程序代码:
import java.util.ArrayList;
import java.util.List;

public class ListContainsTest {
    public static void main(String... args) {
        List<int[]> list = new ArrayList<int[]>();
        list.add(new int[]{0, 1});
        list.add(new int[]{3, 5});
        list.add(new int[]{2, 8});
        list.add(new int[]{4, 1});
        list.add(new int[]{6, 5});
        list.add(new int[]{8, 15});

        for (int index = 0; index < list.size(); index++) {
            if (list.get(index)[0] == 6 && list.get(index)[1] == 5) {
                System.out.println("list.contains(new int[]{6, 5})");
                break;
            }
        }
    }
}


list.contains(new int[]{6, 5})
2015-04-04 22:36
快速回复:java中怎么判断List<int[]>中是否包含某元素
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016882 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved