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

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • list map

    查看全部
  • Map中的Hash Map

    创建方法与List的类似(key,value)

    添加与修改都是.put方法

    删除是remove

    遍历可用keySet(value)、entrySet(映射)


    查看全部
  • Collection中的ArrayList与hashset

    ArrayList与hashset的创建方法

    两者不同为:前者为有序的可重复集合,后者为无序的不可重复集合。

    ArrayList<Integer> loadsList = new ArrayList<Integer>();

    HashSet<Integer> loadsSet = new HashSet<Integer>();

    增:对象.add(All)

    查:对象.get

    改:对象.set

    删:对象.remove(All)

    泛型:创建时ArrayList.<类型>

    查看全部
  • 在泛型集合中,除了能够存储泛型类型的对象实例,还可以存储泛型的子类型的对象实例。

    1. 泛型集合中的限定类型不能使用基本数据类型,必须使用引用类型

    2. 可以通过使用包装类限定允许存入的基本数据类型

    泛型笔记:

    http://www.runoob.com/java/java-generics.html


    查看全部
  • 将基本类型转换为字符串

     将字符串转换为基本类型

    查看全部
  • 对String的一些查询转换等方法

    查看全部
  •                              泛型

    像是一个 检查器 来检查传入进 List 中的元素是否为提前规定的类型,如果是,则一切正常,如果不是,则元素是传不进去的。

     访问控制符 List < 类型 > 属性名;

    且初始化 List 也要带有 泛型;

    this . 属性名 = new ArraysList < 类型 >( );

    注:泛型 还有一大好处,因为泛型规定了传入 List 的类型,所以在读取是,元素不再是以 Object 的类型出现,所以使用 泛型 传入的元素,取读时不用再 强转类型 。

    查看全部
  • 异常 的使用总结

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

    2018-09-02

  • 异常链写法

    查看全部
  • 装箱:将基本类型转换为包装类

    手动装箱:

    int a = 1;

    Integer b = new Integer(a);

    自动装箱:

    Integer c = a;

    拆箱:将包装类转换为基本类型

    手动拆箱:

    Double a = new Double(1);

    double b = a.DoubleValue();

    自动拆箱:

    double c = a;

    查看全部
  • package package1;


    /*

     * 玩家信息类,含玩家ID、姓名及玩家手牌集合;

     */


    import java.util.ArrayList;

    import java.util.List;


    public class Player {

    public int id;//玩家id;

    public String name;//玩家姓名;

    public List<Card> handpocker;//玩家手牌;

    public Player(int id, String name) {

    super();

    this.id = id;

    this.name = name;

    this.handpocker=new ArrayList<Card>();

    }


    public Player() {

    super();

    // TODO Auto-generated constructor stub

    }

    }


    package package1;


    import java.util.List;


    /*

     * 手牌类,含点数及花色信息;

     * */

    public class Card {

    public String number;// 扑克牌点数大小

    public String type;// 扑克牌花色类型

    public Integer type1;//花色类型的数字代号(黑桃为1,红桃为2,梅花为3,方片为4);

    public Integer number1;//扑克牌点数数字代号

    public Card() {

    super();

    // TODO Auto-generated constructor stub

    }

    public Card(String number, String type) {

    super();

    this.number = number;

    this.type = type;

    if(this.type.equals("黑桃")) {

    this.type1=4;

    }else if(this.type.equals("红桃")) {

    this.type1=3;

    }else if(this.type.equals("梅花")) {

    this.type1=2;

    }else{

    this.type1=1;

    }

    if(this.number.equals("A")) {

    this.number1=15;

    }else if(this.number.equals("J")) {

    this.number1=11;

    }else if(this.number.equals("Q")) {

    this.number1=12;

    }else if(this.number.equals("K")) {

    this.number1=13;

    }else if(this.number.equals("2")) {

    this.number1=2;

    }else if(this.number.equals("3")) {

    this.number1=3;

    }else if(this.number.equals("4")) {

    this.number1=4;

    }else if(this.number.equals("5")) {

    this.number1=5;

    }else if(this.number.equals("6")) {

    this.number1=6;

    }else if(this.number.equals("7")) {

    this.number1=7;

    }else if(this.number.equals("8")) {

    this.number1=8;

    }else if(this.number.equals("9")) {

    this.number1=9;

    }else if(this.number.equals("10")) {

    this.number1=10;

    }

    }


    package package1;


    import java.util.ArrayList;

    import java.util.Collections;

    import java.util.InputMismatchException;

    import java.util.List;

    import java.util.Scanner;


    public class Game {

    public List<Card> cardslist; //用于存放扑克牌卡片的List集合;

    public List<Player> playerlist;//用于存放玩家信息的List集合;

    public Game(List<Card> cardslist,List<Player> playerlist) {

    this.cardslist = new ArrayList<Card>();

    this.playerlist = new ArrayList<Player>(); 

    }

       /*

        * 创建一副52张的扑克牌 ;

        */

    public void CreatPocker() {

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

       

       String[] point = new String[]{"1","2","3","4","5","6","7","8","9","10","J","Q","K","A"};//扑克牌点数数组;

       String[] pattern = new String[] {"黑桃","红桃","梅花","方块"};//扑克牌花色数组;

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

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

        Card card = new Card(point[i],pattern[j]);

        cardslist.add(card);

        }

       }

       System.out.println("扑克牌创建完毕,请开始游戏!");

    }

    /*

    * 输入玩家信息;

    */

    public void CreatePlayer() {

    System.out.println("------------请输入玩家个数:--------------");

    Scanner N =new Scanner(System.in);

    int N_player=N.nextInt();//N_player为玩家个数;

    System.out.println("------------请输入玩家信息:--------------");

    Player player=new Player();

    Scanner console = new Scanner(System.in);

    boolean bool;

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

    do {

    try{

       bool=false;

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

       int id = console.nextInt();

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

       String name = console.next(); 

       player=new Player(id,name);

       }catch (InputMismatchException e) {

        console.next();

        bool=true;

        System.out.println("请输入正确的ID格式(纯数字)!");

       }

    }while((playerlist.contains(player))||(bool==true));

    playerlist.add(player);

    }

    System.out.println("---------------"+N_player+"位玩家信息输入完毕!----------------");

    }

    /*

    * 洗牌;

    */

    public void ShuffleCard() {

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

    Collections.shuffle(cardslist);

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

    }

    /*

    * 发牌;

    */

    public void FaPai() {

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

    for(int i=0;i<playerlist.size();i++) {

    for(int j=0;j<2;j++)

    {

    playerlist.get(i).handpocker.add(cardslist.get(0));

    cardslist.remove(0);

    }

    }

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

    }

    /*

    * 比较大小且输出;

    */

    public void compare() {

    System.out.println("--------------每个玩家信息及拿牌情况--------------");

    for(int i=0;i<playerlist.size();i++) {

    System.out.println("第"+(i+1)+"位玩家信息:");

    System.out.println("ID为: "+playerlist.get(i).id+" 姓名为: "+playerlist.get(i).name);

    System.out.println("第"+(i+1)+"位玩家拿牌情况:");

    for(int j=0;j<playerlist.get(i).handpocker.size();j++) {

    System.out.println("点数为: "+playerlist.get(i).handpocker.get(j).number+" 花色为: "+playerlist.get(i).handpocker.get(j).type);

    }

    }

      //将每个玩家手中最大的牌添加到CardmaxList集合中;

      List<Card> CardmaxList = new ArrayList<Card>();

      for(int i=0;i<playerlist.size();i++) {

      Collections.sort(playerlist.get(i).handpocker,new CardCompare());

      CardmaxList.add(playerlist.get(i).handpocker.get(playerlist.get(i).handpocker.size()-1));

      }

      

      //比较每个玩家手中最大的牌;

      int max = 0;

      int k = 0;

     // Collections.sort(CardmaxList,new CardCompare());

      for(int j=0;j<CardmaxList.size()-1;j++) {   

       k = CardmaxList.get(j).number1.compareTo(CardmaxList.get(j+1).number1);

    if(k==0) {

    if(CardmaxList.get(j).type.equals(CardmaxList.get(j+1).type)) {

    k=0;

    }else {

    k=CardmaxList.get(j).type1.compareTo(CardmaxList.get(j+1).type1);

    }

    }

      if(k==0){

    System.out.println("平局,请重新开始!");

      }else if(k<0) {

      max=j+1;       

      }

      }


      //输出赢家信息;

      if(k!=0) {

      System.out.println("赢家为: id: "+playerlist.get(max).id+" 姓名:"+playerlist.get(max).name);

      }

      

    }

    }


    }


    package package1;


    import java.util.Comparator;


    public class CardCompare implements Comparator<Card> {


    @Override

    public int compare(Card o1, Card o2) {

    // TODO Auto-generated method stub

    int i = o1.number1.compareTo(o2.number1);

    if(i==0) {

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

    return 0;

    }else {

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

    }

    }else {

    return i;

    }

    }


    }


    package package1;


    import java.util.List;

    import java.util.Scanner;

    import java.util.Collection;

    import java.util.Collections;


    //纸牌游戏,比较大小


    public class pocker {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

            Game game=new Game(null, null);

            game.CreatPocker();

            game.CreatePlayer();

            game.ShuffleCard();

            game.FaPai();

            game.compare();

    }


    }


    查看全部
  • for ( int num = 0; num<nums.length;num++   ) {

    System.out.print(nums[num] + " ");

    与下面方法相同:

    // 使用foreach循环输出数组中的元素

    for (  int num : nums     ) {

    System.out.print(num + " ");


    查看全部
  •               List 之删除元素:

     remove 方法:先要将想要删除的元素取读,将需要删除的元素导入 remove( )方法中,即可被删除。

    另一种 remove 方法:不用先将 List 中将要被删除元素取读,直接输入将要被删除的元素的索引位置即可。

     removeAll 方法:删除 List 中的多个元素,将想要删除的几个元素,以创建数组的形式取读出来,然后使用 removeAll 方法删除这个数组,其中会使用到 Arrays.asList 方法将数组转换为集合,

    查看全部
  • Date 类最主要的作用就是获得当前时间


    // 创建Calendar对象

    Calendar c = Calendar.getInstance();

            

    // 将Calendar对象转换为Date对象

    Date date = c.getTime();

            

    // 创建SimpleDateFormat对象,指定目标格式

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            

    // 将日期转换为指定格式的字符串

    String now = sdf.format(date);

    System.out.println("当前时间:" + now);


    查看全部
  • http://www.runoob.com/java/java-date-time.html


    format() 方法将日期转换为指定格式的文本

    parse() 方法将文本转换为日期

    查看全部

举报

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

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