-
parse查看全部
-
format查看全部
-
Comparable和Comparator
Comparable接口——可比较的
实现该接口表示:这个类的实例可以比较大小,可以进行自然排序。
定义了默认的比较规则。
其实现类需实现compareTo()方法。
compare To()方法返回正数表示大,负数表示小,0表示相等。
Comparator接口——比较工具接口
用定义临时比较规则,而不是默认比较规则。
其实现类需要实现compare()方法。
Comparator和Comparable都是Java集合框架的成员。
查看全部 -
我总看看脱查看全部
-
HashSet是Set的一个重要实现类,Set是元素无序并且不可以重复的集合查看全部
-
public class Card implements Comparable<Card>{ public String suit; public String point; public Card(String suit,String point){ this.suit=suit; this.point=point; } // 获取牌面大小 private Integer getPointValue(String num){ if(num.equals("2")) return 1; if(num.equals("3")) return 2; if(num.equals("4")) return 3; if(num.equals("5")) return 4; if(num.equals("6")) return 5; if(num.equals("7")) return 6; if(num.equals("8")) return 7; if(num.equals("9")) return 8; if(num.equals("10")) return 9; if(num.equals("J")) return 10; if(num.equals("Q")) return 11; if(num.equals("K")) return 12; if(num.equals("A")) return 13; return -1; } // 获取花色大小 private Integer getSuitValue(String na){ if(na.equals("黑桃")) return 4; if(na.equals("红桃")) return 3; if(na.equals("梅花")) return 2; if(na.equals("方块")) return 1; return -1; } @Override public int compareTo(Card card) { // 如果牌面相同就看花色 int numCompare = getPointValue(this.point).compareTo(getPointValue(card.point)); if(numCompare == 0){ return getSuitValue(this.suit).compareTo(getSuitValue(card.suit)); } return numCompare; } } /** * 玩家类 */ public class Player { public String id; public String name; public List<Card> cards; public Player(String id,String name) { this.id=id; this.name=name; this.cards=new ArrayList<Card>(); } } /** * 玩游戏 */ public class PlayGame { public static List<Card> cards; public PlayGame() { cards=new ArrayList<Card>(); } /** * 生成牌 */ public void createCard(){ String[] point={"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; String[] suit={"方块","梅花","红桃","黑桃"}; for(int i=0;i<suit.length;i++) { for(int j=0;j<point.length;j++){ Card card=new Card(suit[i],point[j]); cards.add(card); } } } /** * 打印扑克牌 */ public void printCard(){ System.out.print("为["); for(Card card : cards){ String cardshow=card.suit+card.point; System.out.print(cardshow); if(cards.indexOf(card)!=cards.size()-1){ System.out.print(","); } } System.out.println("]"); } /** * 洗牌 */ public void shuffleCard(){ Collections.shuffle(cards); } /** * @param args */ public static void main(String[] args) { PlayGame pg=new PlayGame(); System.out.println("---------------------------创建扑克牌...-------------------------------"); pg.createCard(); System.out.println("---------------------------扑克牌创建成功!-------------------------------"); pg.printCard(); System.out.println("---------------------------开始洗牌...-------------------------------"); pg.shuffleCard(); System.out.println("---------------------------洗牌成功!-------------------------------"); //pg.printCard(); System.out.println("---------------------------创建玩家...-------------------------------"); Scanner console= new Scanner(System.in); System.out.println("请输入第1位玩家的ID和姓名:"); System.out.println("输入ID:"); String id1=console.next(); System.out.println("输入Name:"); String name1=console.next(); Player player1=new Player(id1,name1); System.out.println("请输入第2位玩家的ID和姓名:"); System.out.println("输入ID:"); String id2=console.next(); System.out.println("输入Name:"); String name2=console.next(); Player player2=new Player(id2,name2); System.out.println("----欢迎玩家:"+name1); System.out.println("----欢迎玩家:"+name2); System.out.println("---------------------------开始发牌...-------------------------------"); System.out.println("----玩家"+name1+"-拿牌:"); player1.cards.add(cards.get(0)); System.out.println("----玩家"+name2+"-拿牌:"); player2.cards.add(cards.get(1)); System.out.println("----玩家"+name1+"-拿牌:"); player1.cards.add(cards.get(2)); System.out.println("----玩家"+name2+"-拿牌:"); player2.cards.add(cards.get(3)); System.out.println("---------------------------发牌结束!-------------------------------"); System.out.println("---------------------------开始游戏....-------------------------------"); Card p1Card1=player1.cards.get(0); Card p1Card2=player1.cards.get(1); Card p1CardMax; Card p2Card1=player2.cards.get(0); Card p2Card2=player2.cards.get(1); Card p2CardMax; if(p1Card1.compareTo(p1Card2)>0){ System.out.println("玩家:"+name1+"最大的手牌为:"+p1Card1.suit+p1Card1.point); p1CardMax=p1Card1; }else{ System.out.println("玩家:"+name1+"最大的手牌为:"+p1Card2.suit+p1Card2.point); p1CardMax=p1Card2; } if(p2Card1.compareTo(p2Card2)>0){ System.out.println("玩家:"+name2+"最大的手牌为:"+p2Card1.suit+p2Card1.point); p2CardMax=p2Card1; } else{ System.out.println("玩家:"+name1+"最大的手牌为:"+p2Card2.suit+p2Card2.point); p2CardMax=p2Card2; } if(p1CardMax.compareTo(p2CardMax)>0){ System.out.println("---------------------------玩家:"+name1+"获胜!-------------------------------"); } else{ System.out.println("---------------------------玩家:"+name2+"获胜!-------------------------------"); } System.out.println("玩家各自的手牌为:"); System.out.println(name1+":["+p1Card1.suit+p1Card1.point+","+p1Card2.suit+p1Card2.point+"]"); System.out.println(name2+":["+p2Card1.suit+p2Card1.point+","+p2Card2.suit+p2Card2.point+"]"); } }
查看全部 -
基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
2. 使用String类的 valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
将字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
查看全部 -
java中的集合框架
查看全部 -
比较笨的方法
查看全部 -
//利用put方法修改Map中的已有映射 public void testModify(){ //提示要输入要修改的学生ID System.out.println("请输入要修改的学生ID:"); //创建一个Scanner对象,去获取从键盘上输入的学生ID字符串 Scanner console=new Scanner(System.in);
关于Map:
1.初始化变量 Map<String,Student>students = new HashMap<String,Student>() //初始化key值为String,存放的数据类型为student的students集合
2.put()增加对象 Student newStu = new Student(ID,name); students.put(ID,newStudent);//以ID作为key值
3.查找对象 (1)Set<String>keySet = students.keySet(); for(String stuId:keySet){ Student st =students.get(stuId); }//先用keySet()获取所有的key,再遍历获取每一个对象 (2)Set<Entry<String,Student>>entrySet = students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对 for(Entry<String,Student>entry:entrySet) {//遍历获取键值对 entry.getKey();//获取key entry.getValue();//获取value }
4.删除 students.remove(ID);//根据key的值删除
5.修改 Student stu = students.get(ID); Student newStudent =new Student(ID,newname); students.put(ID,newStudent); /*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/
查看全部 -
Map增删改查: 增:map的put(key,value)方法添加。 查:1.利用keyset()方法获得Map中key的集合,再遍历key的集合,利用Map的get(key)方法得到key对应的value值。 2.利用EntrySet方法获取May中Entry对象集:然后用foreach遍历集,再用Entry集的getkay()和getvalue()方法得到每一个key值和value值。 删:remove(object key) 改:put(原有的key,新的value) 通过entrySet可以返回Map中的所有键值对 Set<Entry<String,Student>>entrySet = students.entrySet();
HashMap 类的方法已经写好,所以你调用HashMap 类的方法的时候当然要用它自己的名字,例如
Haspmap实例名字.get(KEY)----返回对应的对象方法 ;
Haspmap实例名.put(Key, Value)----修改对应键的 Value;
首先 Haspmap实例名字.EntrySet <K,V> 也是HashMap 类已经写好的方法,返回一个 Entry<K,Y> 类型的对 象object.
查看全部 -
Map接口:
Map提供了一种映射关系,其中的元素是以键值对的形式存储的,能够实现根据key快速查找value。
Map中的键值对以Entry类型的对象实例存在。key不可重复,value可以。每个key最多只能映射到一个value。
Map接口提供了分别返回key值集合,value值集合以及Entry(键值对)集合的方法。
查看全部 -
Set接口及其实现类——HashSet
Set是元素无序并且不可以重复的集合,被称为集
HashSet——哈希集,是Set的一个重要实现类
有add addAll remove removeAll size 等方法,但是与List不同的是没有Set(修改)方法,因为它是无序的,不能通过位置去修改
Set打印输出的时候只能用foreach方法或iterator方法,不能用get()方法
Set中只会保留一个重复对象的引用(是第一次添加的那一个)
查看全部 -
List接口
List是元素有序并且可以重复的集合,被称为序列,它可以精准地控制每个元素插入的位置,或者删除某个位置的元素。
ArrayList——数组序列,是List一个重要的实现类。ArrayList底层是由数组实现的。
查看全部 -
collection:
分为list 序列 ArrayList
queue队列 LinkedList链表
set 集 HashSet哈希集
Map:HashMap哈希表(key,value)
查看全部
举报