Hashset不是无序的吗?

来源:7-1 简易扑克牌游戏

亦菲大魔王

2019-03-27 16:05

package com.imooc;import java.util.HashSet;public class Test {/** * 一、创建一副扑克牌 包括四种花色:黑桃、红桃、梅花、方片 十三种点数 2-10,JQKA 不考虑大小王 * 二、创建两名玩家  玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合 * 三、洗牌  将只按创建的“一副扑克牌”打乱顺序 * 四、发牌 将洗牌之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张 * 五、游戏 比较两名玩家手中的扑克牌,规则为:取两人各自手中点数最大的牌进行比较,点数大的赢; *         若两人各自的点数最大的牌相等,则再按花色比较 * @param args */		/*	* 创建并展示扑克牌	*/	static Card[] c = 		   {new Card("黑桃",1),new Card("黑桃",2),new Card("黑桃",3),new Card("黑桃",4),new Card("黑桃",5),new Card("黑桃",6),			new Card("黑桃",7),new Card("黑桃",8),new Card("黑桃",9),new Card("黑桃",10),new Card("黑桃",11),new Card("黑桃",12),new Card("黑桃",13),			new Card("红桃",1),new Card("红桃",2),new Card("红桃",3),new Card("红桃",4),new Card("红桃",5),new Card("红桃",6),			new Card("红桃",7),new Card("红桃",8),new Card("红桃",9),new Card("红桃",10),new Card("红桃",11),new Card("红桃",12),new Card("红桃",13),			new Card("梅花",1),new Card("梅花",2),new Card("梅花",3),new Card("梅花",4),new Card("梅花",5),new Card("梅花",6),			new Card("梅花",7),new Card("梅花",8),new Card("梅花",9),new Card("梅花",10),new Card("梅花",11),new Card("梅花",12),new Card("梅花",13),			new Card("方片",1),new Card("方片",2),new Card("方片",3),new Card("方片",4),new Card("方片",5),new Card("方片",6),			new Card("方片",7),new Card("方片",8),new Card("方片",9),new Card("方片",10),new Card("方片",11),new Card("方片",12),new Card("方片",13),			};		public static void createCard(){		System.out.println("----------创建扑克牌...----------");		System.out.println("----------扑克牌创建成功!----------");		System.out.print("为:[");		System.out.print(c[0].color+c[0].point);		for(int i=1;i<52;i++){			System.out.print(","+c[i].color+c[i].point);		}		System.out.println("]");			}	/*	* 洗牌	*/	public static void washCard(){		System.out.println("-----------开始洗牌...----------");		HashSet<Card> cardsToSelect = new HashSet<Card>();		System.out.println("----------洗牌结束!----------");		for(int i=0;i<52;i++){			cardsToSelect.add(c[i]);		}		for(Card s : cardsToSelect){			System.out.print(s.color+s.point+" ");		}	}	public static void main(String[] args) {		// TODO Auto-generated method stub		createCard();		washCard();	}}

写完洗牌后,发现不管怎么洗,遍历出来的都是一样的。HashSet不是无序的吗?

写回答 关注

2回答

  • 慕六六7126645
    2019-04-18 10:42:46

    https://www.zhihu.com/question/28414001/answer/40733996

    你可以看看这个,虽然我也不太懂

  • 亦菲大魔王
    2019-03-27 16:10:05

    遍历出来的一直是这个

    黑桃8 方片13 方片11 黑桃11 黑桃7 方片5 红桃11 方片12 黑桃3 方片4 红桃7 黑桃9 黑桃13 梅花8 梅花11 黑桃10 梅花6 红桃1 方片10 红桃9 红桃8 梅花4 红桃6 黑桃12 红桃13 梅花9 黑桃5 红桃10 梅花10 梅花5 梅花2 方片8 黑桃6 方片6 方片3 方片7 梅花13 红桃4 黑桃4 方片9 黑桃1 梅花3 梅花1 红桃2 方片1 红桃12 梅花7 黑桃2 方片2 红桃3 红桃5 梅花12 

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题