java list的contains_List的contains方法间歇性的失效,求指点,可怜可怜我这个在除夕夜学Java的小白吧,23333...

public void Card(){

String storage1 = "黑桃红桃梅花方片";

String storage2 = "123456789JQKA";

List washCard = new ArrayList();

List colour = new ArrayList();

String Card = new String ();

for(;colour.size()<4;)

{

do

{

//控制花色种类

int S1=(int)(Math.random()*4);

Card = storage1.substring(S1*2, S1*2+2);

//控制花色的大小

for(int number =0; number<13;number++)

{

Bd = new StringBuilder();

//不考虑大小王,每种花色的扑克牌一共十三种大小,所以循环13次

//每次都加入一种进入washCard

//防止重复添加,所以用List的contains查看有没有该扑克牌,有就用dowhile重新循环一次,没有再添加

do

{

Bd.append(Card);

int S2 =(int)(Math.random() * 13) ;

if(S2==0)

{

Bd.append("10");

}

else

{

Bd.append(storage2.charAt(S2));

}

}while(washCard.contains(Bd));

//这里输出总是显示FALSE,即使重复也是FALSE,我用eclipse自动重写equals方法和HashCode也还是不行

System.out.println(washCard.contains(Bd));

washCard.add(Bd);

System.out.println(Bd);

//这里输出总是显示TRUE,这个好理解,因为刚刚添加了

System.out.println(washCard.contains(Bd));

}

}while(colour.contains(Card));

colour.add(Card);

// (washCard.contains(Cd));

// washCard.add(Cd);

}

for(int num = 0; num

{

System.out.print( "");

System.out.println(washCard.size());

}

下面是输出效果

false

方片6

true

false

方片5

true

false

方片2

true

false

方片K                                              //这里显示添加了方片K

true

false                                               //这里显示FALSE

方片K                                              //刚刚查询的花色是方片K ,上面明明添加了

true

false

方片J

true

false

方片3

true

false

方片2

true

false

方片A

true

false

方片4

true

false

方片5

true

false

方片2

true

false

方片10

true

false

梅花3

true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值