为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

难度入门
时长 5小时 0分
学习人数
综合评分9.50
1125人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.4 逻辑清晰
  • 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中的集合框架

    https://img1.sycdn.imooc.com//5bed2b040001e1bf04840551.jpg

    查看全部
  • 比较笨的方法

    https://img1.sycdn.imooc.com//5bed16a3000139fb11120645.jpg

    https://img1.sycdn.imooc.com//5bed16ac00018a6209990636.jpg

    https://img1.sycdn.imooc.com//5bed16b80001feb704130566.jpg


    查看全部
  • //利用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)


    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!