萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 2927|回复: 23

请问java中如何比较这个数组中的内容

[复制链接]
发表于 2007-12-14 17:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
ArrayList<SearchToken> searchTokenList = new ArrayList<SearchToken>();


想比较searchTokenList数组中的内容,因为这个数组中存放了相同的string内容,
searchToken 形式如下
SearchToken(String id, String token, boolean isCaseSensitive)

也就是说这个数组被限定为 SearchToken的形式,现在想比较数组,请问该如何表达呢,我写的编译不通过,因为数组形式不对,不能用简单的a[0]来表示数组首地址
for(int m=0;m<searchTokenList.size();m++)
            
            {
           for(int n=0;n<searchTokenList.size();n++)
           { if (searchTokenList[m]==searchTokenList[n])
           {   
             generator.searchTokenList.remove(m);
           }
           }
}
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-14 17:46 | 显示全部楼层
1.ARRAYLIST必须要用GET(I)来返回第I位置的元素
2.你定义的类有3个变量,你必须定义什么叫"对象A等于对象B"
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-12-14 18:40 | 显示全部楼层
原帖由 klsharp 于 2007-12-14 16:46 发表
1.ARRAYLIST必须要用GET(I)来返回第I位置的元素
2.你定义的类有3个变量,你必须定义什么叫"对象A等于对象B"



for(int m=0;m<=searchTokenList.size();m++)
         {
           for(int n=0;n<searchTokenList.size();n++)
           {SearchToken p= searchTokenList.get(m);
            SearchToken  q= searchTokenList.get(n);
           if (p==q)
           {   
             searchTokenList.remove(n);
           }
           
           }
}


编译成功,可重复的内容还在:(
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-14 19:27 | 显示全部楼层
wieso so kompliziert,schreib einfach so:
if (searchTokenList.get(m).id==searchTokenList.get(n).id) (Fall die Gleichheit hier bedeutet die ID von beide Objekten gleich sind!).

Aber was bedeutet zwei SearchTokeen gleich??????,
entwede ID von beiden gleich sind oder A.TOKEN==B.TOKEN???
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2007-12-14 20:26 | 显示全部楼层
原帖由 klsharp 于 2007-12-14 18:27 发表
wieso so kompliziert,schreib einfach so:
if (searchTokenList.get(m).id==searchTokenList.get(n).id) (Fall die Gleichheit hier bedeutet die ID von beide Objekten gleich sind!).

Aber was bedeute ...


searchTokenList这个数组里面存的是一个算法找到的token,token属性为<SearchToken>,但它们有重复的,我的目的就是删除这些重复的token,我的程序不是多删,就是少删$汗$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-14 21:07 | 显示全部楼层
被你越搞越糊涂了, 你这个程序删除的是SearchToken的对象,SearchToken的对象包含3个变量,你要让系统知道什么情况才是所谓的“一样”,所以你要么写一个boolean isgleich(SearchToken a)方法来判断2个SearchToken是否相等,然后在IF语句里调用,要么就向我给你那样在IF语句里写明你究竟要比较哪个变量来判断两个SearchToken是一样的
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-14 21:31 | 显示全部楼层
f (p==q)


lz想比较两个对象。

要分清楚 对象的比较(参见equals 或 compareTo) 跟 基本型别的比较(用 ==, !=, <, >) 这两个概念的区别,前面已经有人指出来这一点了(见 klsharp 说的 isgleich())。

[ 本帖最后由 小胖猪猪 于 2007-12-14 20:35 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-16 01:00 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-16 05:26 | 显示全部楼层
  • k兄说的是对的,你应该定义一个SearchToken.equals(...)来比较。用==只是比较对象指针是否相同。
    .
  • 你直接删除list中“多余”的对象,所以应该反向删除,而不是从0到size。好处你慢慢体会吧

       for (int m = size()-1; m >= 1; m--)
        {
                String s1 = list.get(m);
                for (int n = m-1; n >= 0; n--)
                {
                        if (list.get(n).equals(s1)) //equals需要你在SearchToken类中定义
                        {
                                list.remove(m);
                                break;
                        }
                }
        }

[ 本帖最后由 ourgame 于 2007-12-16 13:34 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-16 11:00 | 显示全部楼层
$frage$ $frage$ 不是很明白为啥一定要从后往前。。。应该都一样吧。。。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-17 20:51 , Processed in 0.063085 second(s), 20 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表