zoukankan      html  css  js  c++  java
  • preliminary->advanced exam coding part

    tangVoice - 唐城好声音

    实现选手的增删改查,非常基础的数组操作,不过我了解了arraylist决定用arraylist做

    对于一个选手来说肯定是需要用到对象,且将属性封装到对象中合理

    import java.util.Scanner;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    public class Tangvoice{
        public static void main( String[] args ){
            System.out.println("----------欢迎来到唐城好声音----------");
            System.out.println("1.显示所有学员信息");
            System.out.println("2.根据年龄从小到大排序");
            System.out.println("3.随即观看学员技能");
            System.out.println("4.删除学员");
            System.out.println("5.添加学员");
            System.out.println("0.退出");
            System.out.println("-----------------------------------");
            Scanner input = new Scanner(System.in);
            ArrayList<Singer> list = new ArrayList<Singer>();
            Singer Ji=new Singer("Jikejunyi",23,"wangfeng","pop","pop song singer");
            Singer Zhang=new Singer("Zhangbichen",22,"naying","classic","classic song singer");
            Singer Liu=new Singer("Liuanqi",28,"jielun","rock","rock song singer");
            Singer Liang=new Singer("Liangbo",21,"naying","classic","classic song singer");
            Singer Mao=new Singer("Maobiyi",26,"halin","classic","classic song singer");
            list.add(Ji);
            list.add(Zhang);
            list.add(Liu);
            list.add(Liang);
            list.add(Mao);
    boolean finish = true;        
    while(finish){
                System.out.println();
                System.out.print("Choose operation: ");
                switch(input.nextInt()){
                    case 1:list.forEach(item->item.display());
                           break;
                    case 2:ArrayList<Singer> temp = new ArrayList<Singer>();
    temp.addAll(list);
                           Collections.sort(temp,(a,b)->{
                                   if(a.getAge()>b.getAge())
                                   return 1;
                                   else
                                   return -1;
                                   });
                           temp.stream().filter(item->item!=null).forEach(item->item.display());
                           break;
                    case 3:
                           double n = Math.random()*list.size();
                           list.get((int)n).display();
                           break;
                    case 4:
                           list.forEach(item->item.display());
                           System.out.println("delete which singer: ");
                           int index = input.nextInt();
                           list.remove(index);
                           System.out.println("delete index=" +index+" singer");
                           break;
                    case 5:
                           System.out.println("enter Singer info:");
                           System.out.print("Type: ");
                           String type1 = input.next();
                           System.out.print("Name: ");
                           String name1 = input.next();
                           System.out.print("Age: ");
                           int age1 = input.nextInt();
                           System.out.print("Team: ");
                           String team1 = input.next();
                           Singer newSinger = new Singer(name1,age1,team1,type1,null);
                           list.add(newSinger);
                           System.out.println("add successfully");
                           break;
                    case 0:finish=false;
                           System.out.println("System quit");
    }                       
            }
        }
    }
    class Singer{
        private String name;
        private int age;
        private String team;
        private String type;
        private String skill;
        Singer(String _name, int _age, String _team, String _type, String _skill){
            this.name = _name;
            this.age = _age;
            this.team = _team;
            this.type = _type;
            this.skill = _skill;
        }
        public int getAge(){
            return this.age;
        }
        public String getName(){
            return this.name;
        }
        public void display(){
            System.out.println("Singer type: "+type+", "+"name: "+name+", "+"age: "+age+", "+"team: "+team);
        }
    }

    总结一下问题:

    第一个是UI的问题,每次都要从console看,java的清屏不像c++那么容易(可能是我还没有很了解),最好写swing出来个UI

    第二个是ArrayList的复制问题,排序要求不能对原数组操作,换ArrayList的话只能重新建个新ArrayList,再用addAll()方法把旧list加进去,这样是最快的方法么?

    第三个是lambda表达式的问题,()->{}这类箭头函数中是不能有赋值操作的,很多功能是不支持的,会提示必须是static或final

    第四个是注意泛型的问题,如果在ArrayList中不标注泛型,编译时会出现不安全数据类型的错误,养成好习惯。

  • 相关阅读:
    Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之验证码
    ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
    ASP.NET Core之跨平台的实时性能监控(2.健康检查)
    应用程序的8个关键性能指标以及测量方法
    ASP.NET Core之跨平台的实时性能监控
    浅析Entity Framework Core2.0的日志记录与动态查询条件
    开发短网址平台的思路
    Nginx解决错误413 Request Entity Too Large
    配置Nginx实现负载均衡
    Windows下Nginx的安装及使用方法入门
  • 原文地址:https://www.cnblogs.com/exigeslover/p/11931337.html
Copyright © 2011-2022 走看看