为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • 如果try{}catch{}finally{}中没有return语句,那么会执行其之外的return语句。
    查看全部
  • 集合

    List,Queue 有序 序列和对列

    Set 无序 类似于集

    查看全部
  • //测试Map中,是否包含某个Key值或某个Value值
    public void testContainKeyOrValue(){
    //提示输入学生ID
    System.out.println("请输入要查询的学生ID:");
    Scanner console=new Scanner(System.in);
    String id=console.next();
    //在Map中,用containsKey()方法,来判断是否包含某个Key值
    System.out.println("你输入的学生ID为:"+id+",在学生映射表中是否存在:"+students.containsKey(id));
    if(students.containsKey(id))
    System.out.println("对应的学生为:"+students.get(id).name);
    //提示输入学生姓名
    System.out.println("请输入要查询的学生姓名:");
    String name=console.next();
    //用containsValue()方法,来判断是否包含某个Value值
    if(students.containsValue(new Student(null,name)))
    System.out.println("在学生映射表中,确实包含学生:"+name);
    else
    System.out.println("在学生映射表中不存在该学生");}


    查看全部
  • foreach语句

    for(参数类型 x:xx)

    {

    引用了x的语句;

    }

    查看全部
  • //SetTest.java
    //测试list的contains方法
    public void testListContains(){
    //取得备选课程序列的第0个元素
    Course course=coursesToSelect.get(0);
    //打印输出coursesTOSelected是否包含course对象
    System.out.println("取得课程:"+course.name);
    System.out.println("备选课程中是否包含课程:"+course.name+","+coursesToSelect.contains(course));
    //创建一个新的课程对象,ID和名称,与course对象完全一样
    Course course2=new Course(course.id,course.name);
    System.out.println("新创建课程:"+course.name);
    System.out.println("备选课程中是否包含课程:"+course2.name+","+coursesToSelect.contains(course2));}
    //重写Course的equals的方法
    public boolean equals(Object obj){
    if(this==obj){
    return true;}
    if(obj==null/)
    return false;
    if(!(obj instanceof Course))
    return false;
    Course course=(Course)obj;
    if(this.name==null){
    if(course.name==null)
    return true;
    else
    returm false;
    }else{
    if(this.name.equals(course.name))
    return true;
    else false;}
    }


    查看全部
  • //利用put方法修改Map中的已有映射
    public void testModify(){
    //提示要输入要修改的学生ID
    System.out.println("请输入要修改的学生ID:");
    //创建一个Scanner对象,去获取从键盘上输入的学生ID字符串
    Scanner console=new Scanner(System.in);
    while(true){
    //取得从键盘输入的学生ID
    String stuID=console.next();
    //从students中查找学生ID对应的学生对象
    Student student=students.get(stuID);
    if(student==null){
    System.out.println("该ID不存在!请从新输入!");
    continue;}
    }
    //提示当前对应的学生对象的姓名
    System.out.println("当前学生ID,所对应的学生为:"+student.name);
    //提示输入新的学生姓名,来修改已有的映射
    System.out.println("请输入新的学生姓名:");
    String name=console.next();
    Student newStudent=new Student(stuID,name);
    students.put(stuID,newStudent);
    System.out.println("修改成功");
    }
    }


    查看全部
  • 截图方便看https://img1.sycdn.imooc.com//5b5c1f6400011cc907890394.jpg

    查看全部
  • //测试删除Map中的映射
    public void testRemove(){
    //获取从键盘输入的待删除学生ID字符串
    Scanner console=new Scanner(System.in);
    while(true){
    //提示输入待删除的学生ID
    System.out.println("请输入要删除的学生ID!");
    String ID=console.next();
    //判断该ID是否有对应的学生对象
    Student st=students.get(ID);
    if(st==null){
    //提示输入的ID并不存在
    System.out.println("该ID不存在!");
    continue;}
    students.remove(ID);
    System.out.println("成功删除学生:"+st.name);
    break;}}
    //通过entrySet方法遍历Map
    public void testEntrySet(){
    //通过entrySet方法,返回Map中的所有键值对
    Set <Entry<String,Student>>entrySet=students.entrySet();
    for(Entry<String,Student>entry:entrySet){
    System.out.println("取得键:"+entry.getKey());
    System.out.println("对应的值为:"+entry.getValue().name);}
    }
    //main方法中调用
    mt.testRemove();
    mt.testEntrySet();


    查看全部
  • import java.util.Map;
    public class MapTest{
    //用来承装学生类型对象
    public Map<String,Student> students;
    //构造器中初始化students;
    public MapTest(){
    this.students=new HashMap<String,Student>();}
    /**测试添加:输入学生ID,判断是否被占用
    若有被占用,则输入姓名,创建心学生对象,并且
    添加到student中*/
    public void tsetPut(){
    //创建一个Scanner对象,用来获取输入的学生ID和姓名
    Scanner console=new Scanner(System.in);
    int i=0;
    while(i<3){
    System.out.println("请输入学生ID");
    String ID=console.next();
    //判断该ID是否被占用
    Student st=student.get(ID);
    if(st==null){
    //提示输入学生姓名
    System.out.println("请输入学生姓名");
    String name=console.next();
    //创建新的学生对象
    Student newStudent=new Student(ID,name);
    //通过调用students的put方法,添加ID-学生映射
    student.put(ID,newStudent);
    System.out.println("成功添加学生:"+students.get(ID).name);
    i++;
    else{
    System.out.println("该学生ID已被占用!");
    continue;}}}}
    //测试Map的keySet方法
    public void testKeySet(){
    //通过keySet方法,返回Map中的所有“键”的Set集合
    Set <String> keySet=students.keySet();
    //取得students的容量
    System.out.pritnln("总共有:"+students.size()+"个体学生");
    //遍历keySet,取得每一个键,再调用get()方法取得每个键对应的value
    for(String stuId:keySet){
    Student st=students.get(stuId);
    if(st!=null)
    System.out.println("学生:"+st.name);
    }
    }
    public static void main(String args){
    MapTest mt=new MapTest();
    mt.testPut();
    mt.testKeySet();
    }}


    查看全部
  • ******player.java**************************************************

    package com.PokeGame;

    import java.util.ArrayList;

    import java.util.List;


    public class Player {


        public int id;

        public String name;

        public List<Poke> handpoke;//用来存放玩家手牌


        public Player(int id,String name) {

            this.id = id;

            this.name = name;

            this.handpoke = new ArrayList<Poke>();

        }

    }

    ******poke.java******************************************************

    package com.PokeGame;


    public class Poke {

        public String pointsort;//用于游戏点数排序比较

        public String flowercolorsort;//用于游戏花色排序

        public String flowercolor;

        public String point;


        public Poke(String flowercolor, String point, String pointsort, String flowercolorsort){

            this.flowercolor = flowercolor;

            this.point = point;

            this.pointsort = pointsort;

            this.flowercolorsort = flowercolorsort;

        }


        @Override

        public String toString() {

            return flowercolor + point ;

        }

    }

    ******Shuffle.java******************************************************

    package com.PokeGame;

    import java.util.ArrayList;

    import java.util.Collections;

    import java.util.List;


    public class Shuffle {

        //用于存放扑克牌的List

        public List<Poke> pokes;


        public  Shuffle(){

            pokes = new ArrayList<>();

        }


        /**

        * 创建扑克牌并添加到扑克牌List

        */

        public void pokeCreate(){

            String[] flowercolor = {"方块","梅花","红桃","黑桃"};

            String[] point = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};


            for(int i = 0; i<flowercolor.length; i++){

                for(int j =0; j<point.length; j++){

                    Poke poke = new Poke(flowercolor[i],point[j],j+"",i+"");

                    this.pokes.add(poke);

                }

            }

            System.out.println("------------------创建扑克牌成功----------------");


            System.out.println(this.pokes.toString());


        }


        /**

        * 使用Collections.shuffle()随机打乱List顺序;

        */

        public void pokeShuffle(){

            System.out.println("------------------开始洗牌----------------");

            Collections.shuffle(pokes);

            System.out.println("------------------洗牌结束----------------");

        }

    }

    ******Game.java******************************************************

    package com.PokeGame;

    import java.util.ArrayList;

    import java.util.Collections;

    import java.util.InputMismatchException;

    import java.util.List;

    import java.util.Random;

    import java.util.Scanner;


    public class Game {

        //定义一个玩家List

        public List<Player> players;


        public Game() {

            //初始化玩家List

            players = new ArrayList<Player>();

        }


        /**

        * 创建两位玩家进行游戏

        * 通过输入玩家ID和姓名进行创建

        */

        public void createplayer(){

            System.out.println("------------------创建玩家..---------------");

            for(int i = 1; i < 3; i++){

                System.out.println("请输入第"+i+"位玩家的ID和姓名:");

                try {

                    System.out.println("请输入ID:");

                    Scanner console = new Scanner(System.in);

                    int playerid = console.nextInt();

                    System.out.println("请输入姓名:");

                    String name = console.next();

                    Player player = new Player(playerid,name);

                    players.add(player);

                 } catch (InputMismatchException e) {

                    System.out.println("请输入整数类型的ID!");

                    i--;

                    continue;

                }

            }

        }


        /**

        * 通过For Each遍历玩家List

        */

        public void forEachPlayers(){

            for (Player player : players) {

                System.out.println("------欢迎玩家:" + player.name);

            }

        }


        /**

        *传入创建扑克牌并洗牌的Shuffle类的实例s,

        *才能使用创建存放扑克牌名为pokes的List,

        *并随机生成52以内的整数(一共52张牌)作为

        *添加进玩家手牌handpoke中的poke在List中的位置

        */

        public void faPai(Shuffle s){

            System.out.println("------------------开始发牌----------------");

            Random random = new Random();

            for(int i = 0; i < 4; i++){

                if(i==0||i==2){

                    int a = random.nextInt(52);

                    players.get(0).handpoke.add(s.pokes.get(a));

                    //往玩家手牌(handpoke)List中添加完一张牌,将这张牌从(Pokes)List中删除

                    s.pokes.remove(a);

                    System.out.println("玩家:" + players.get(0).name + "--拿牌");

                }else{

                    int b = random.nextInt(51);

                    players.get(1).handpoke.add(s.pokes.get(b));

                    System.out.println("玩家:" + players.get(1).name + "--拿牌");

                }

            }

            System.out.println("------------------发牌结束----------------");

        }


        /**

        * 通过调用Collectoins的sort()方法对玩家手牌List(handpoke)进行排序,

        * 因为每个玩家只有两张手牌,排序之后输入位置为1的元素就是最大手牌

        * 同过实现Comparator接口,用手牌中的pointsort和flowercolorsort,

        * 分别是点数排序和花色排序

        */

        public void handPokeSort(){

            Collections.sort(players.get(0).handpoke, new PokeComparator());

            System.out.println("玩家:" + players.get(0).name + "最大的手牌为:"+

                    players.get(0).handpoke.get(1).toString());

            Collections.sort(players.get(1).handpoke, new PokeComparator());

            System.out.println("玩家:" + players.get(1).name + "最大的手牌为:"+

                    players.get(1).handpoke.get(1).toString());


            //定义一个新的List用于存放两名玩家最大的手牌

            List<Poke> compare = new ArrayList<Poke>();

            compare.add(players.get(0).handpoke.get(1));

            compare.add(players.get(1).handpoke.get(1));

            Collections.sort(compare, new PokeComparator());


            //通过输出的w值来判断哪名玩家获胜

            int w;

            if(compare.get(1).equals(players.get(0).handpoke.get(1))){

                w = 0;

            }else{

                w = 1;

            }

            System.out.println("------------------玩家"+players.get(w).name+"获胜!----------------");

            System.out.println("玩家各自的手牌为:");

            System.out.println(players.get(0).name+":"+players.get(0).handpoke.toString());

            System.out.println(players.get(1).name+":"+players.get(1).handpoke.toString());


        }


        public static void main(String[] args) {

            Shuffle s = new Shuffle();

            s.pokeCreate();

            s.pokeShuffle();

            Game g = new Game();

            g.createplayer();

            g.forEachPlayers();

            g.faPai(s);

            g.handPokeSort();


        }

    }

    ******PokeComparator.java******************************************************

    package com.PokeGame;

    import java.util.Comparator;


    public class PokeComparator implements Comparator<Poke> {

        @Override

        public int compare(Poke o1, Poke o2) {

            if(o1.pointsort.equals(o2.pointsort)){

                return o1.flowercolorsort.compareTo(o2.flowercolorsort);

            }else{

                return o1.pointsort.compareTo(o2.pointsort);

            }

        }

    }

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

    查看全部
  • 迭代器iterator

    查看全部
  • 对象存入集合都变成Object类型,取出时需要类型转换

    查看全部
  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定

    查看全部
    0 采集 收起 来源:经验总结

    2018-07-27

  • 尽量添加finally语句块去释放占用的资源

    查看全部
    0 采集 收起 来源:经验总结

    2018-07-27

  • https://img1.sycdn.imooc.com//5b5b2a9e0001b1ce07840536.jpg

    java库中异常定义

    查看全部

举报

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

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