5-2 jmu-java-m05-自定义Judgeable接口 (10分)
该程序包含

Person类:

属性:String name,boolean gender String birthdate。

构造方法:无参构造方法(初始化名字为空字符串,gender为false)

(name,gender)

(name,gender,birthdate)

方法:getter/setter方法。

自定义接口Judgeable

方法:boolean judge(String)

静态方法:int countPerson(List,Judgeable):实现判断List集合中符合Judge方法的集合元素,并返回其个数

main方法:

定义一个Person类集合,输入个数n,在下面依次输入n行的name,gender,biryhDate值生成person对象并添加进集合。

判断集合中name长度为5的数的个数,并输出,具体格式见输出样例。

判断集合中name长度为7的数的个数,并输出,具体格式见输出样例。

判断集合中name为空的个数,并输出,具体格式见输出样例。

输入格式:
输入一个整数number

根据number,输入number行的name,gender,birthDate

参考代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Person{

//在这里按要求定义person类

}

//在这里给出Judgeable接口的定义,入参为String,返回boolean。

public class Main {

public static int countPerson(List<Person> personList, Judgeable judger) {int n = 0;for (Person person : personList) {if (judger.judge(person.getName()))n++;}return n;
}public static void main(String[] args) {Scanner sc = new Scanner(System.in);List<Person> personList = new ArrayList<Person>();String name;boolean gender;String  birthDate;//在这里输入个数//循环创建person对象存入personList最后//注意:当name输入为null时,将其置为空int nameLength5 = countPerson(personList, new Judgeable() {//Judgeable的实现代码});System.out.println("Number of person with nameLength == 5:"+nameLength5);int nameLength7 = countPerson(personList, new Judgeable() {//Judgeable的实现代码});System.out.println("Number of person with nameLength == 7:"+nameLength7);int nameisnull = countPerson(personList, new Judgeable() {//Judgeable的实现代码});System.out.println("Number of person with null name:"+nameisnull);
}

}

输出格式:
name长度为5的名字的个数

name长度为7的名字的个数

name为null的个数

输入样例:
9
Aaron false 1999-12-19
Abigale true 1998-09-01
null false 1992-11-21
Bonnie true 1990-11-11
null false 1994-07-08
Carol false 1982-12-04
Celeste true 1987-03-01
null false 1996-04-01
Chloe true 1993-02-16

输出样例:
Number of person with nameLength == 5:3
Number of person with nameLength == 7:2
Number of person with null name:3

注意:样例输出不包含检验代码输出,提交时请务必添加检验代码。

作者
郑如滨
单位
集美大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Person{//在这里按要求定义person类private String name;private boolean gender;private String birthDate;public Person(){}public Person(String name,boolean gender){this.name=name;this.gender=gender;}public Person(String name,boolean gender,String birthDate){if(name=="null"){this.name=null;}else{this.name = name;}this.gender=gender;this.birthDate=birthDate;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean getGender() {return gender;}public void setGender(boolean gender) {this.gender = gender;}public String getBirthDate() {return birthDate;}public void setBirthdate(String DirthDate) {this.birthDate = DirthDate;}public String toString(){return "Person:"+getName()+" "+getGender()+" "+getBirthDate();}
}//在这里给出Judgeable接口的定义,入参为String,返回boolean。
interface Judgeable
{boolean judge(String str);public static int countPerson(List<Person> personList, Judgeable judger) {return 0;}}public class Main{public static int countPerson(List<Person> personList, Judgeable judger) {int n = 0;for (Person person : personList) {if (judger.judge(person.getName()))n++;}return n;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);List<Person> personList = new ArrayList<Person>();String name;boolean gender;String  birthDate;//在这里输入个数int n = sc.nextInt();//循环创建person对象存入personList最后for(int i=0;i<n;i++){//注意:当name输入为null时,将其置为空name = sc.next();gender = sc.next()=="true"?true:false;birthDate=sc.next();Person p = new Person(name,gender,birthDate);//            if(name=="null")
//          {//              p.setName(null);
//          }personList.add(p);}//System.out.println(personList);//testint nameLength5 = countPerson(personList, new Judgeable() {//Judgeable的实现代码public boolean judge(String name){if(name.length()==5){return true;}else{return false;}}});System.out.println("Number of person with nameLength == 5:"+nameLength5);int nameLength7 = countPerson(personList, new Judgeable() {//(匿名内部类?)//Judgeable的实现代码public boolean judge(String name){if(name.length()==7){return true;}else{return false;}}});System.out.println("Number of person with nameLength == 7:"+nameLength7);int nameisnull = countPerson(personList, new Judgeable() {//Judgeable的实现代码public boolean judge(String name){//if(name==null)//if(name.isEmpty())if(name.equals("null")){return true;}else{return false;}}});System.out.println("Number of person with null name:"+nameisnull);}
}

5-2 jmu-java-m05-自定义Judgeable接口 (10分)相关推荐

  1. C++/Java写L1-028 判断素数 (10 分)

    本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格式: 对每个需要判断的正整数,如 ...

  2. 谈谈 Java 中自定义注解及使用场景

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:快给我饭吃 www.jianshu.com/p/a7bedc ...

  3. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  4. 《Java 核心技术卷1 第10版》学习笔记------ 接口(Interface)

    接口技术作用:主要描述类具有什么功能,而并不给出每个功能的是的实现. Java的继承(inheritance)是不支持的多继承的,但是Java接口是支持多继承的. 一个 Java 类实现一个接口类就必 ...

  5. 自定义JAVA注解_深入理解Java:自定义java注解

    要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5. ...

  6. java简单自定义Annotation

    为什么80%的码农都做不了架构师?>>>    原文内容比较多,这里就简单地说一下.java 5以后增加了3个annotation, @Override @Deprecated @S ...

  7. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib

    如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...

  8. Java Map 自定义排序

    HashMap是不保证顺序的,要有顺序,要用LinkedHashMap,这是按照插入顺序排列的. Map接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与HashMap的不同之处在于,后者维护 ...

  9. java day23【函数式接口】

    第一章 函数式接口 1.1 概念 函数式接口在Java中是指:有且仅有一个抽象方法的接口. 函数式接口,即适用于函数式编程场景的接口.而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 ...

  10. Java Annotation自定义注解详解

    在开发过程中总能用到注解,但是从来没有自己定义过注解.最近赋闲在家,研究整理了一番,力求知其然知其所以然. 本文会尝试描述什么是注解,以及通过一个Demo来说明如何在程序中自定义注解.Demo没有实际 ...

最新文章

  1. c语言详解sizeof
  2. Python中from import和import的区别?没有比这更好的回答了
  3. (原)学习ORACLE 视图
  4. 论程序员如何规划职业路线?网友:从码农到工程师?
  5. 射击比赛(java)
  6. 一文弄懂nginx反向代理和负载均衡
  7. 51单片机(八)—— 数码管电路介绍
  8. linux不识别iwconfig,CentOS中iwconfig命令not found的解决方法
  9. UART串口通信协议详解
  10. 空格符号复制html,cf空格符号复制(cf空格代码)
  11. python 探究is_dir函数及其使用案例(读取人脸图片)附整体代码
  12. [重装系统]戴尔DELL新BIOS设置U盘启动
  13. 腾讯云服务器从购买到搭建tomcat
  14. IDM UltraEdit编辑器V26.00.0.48 烈火汉化64位版
  15. 系统镜像的方法,大批量电脑重装的方法
  16. FPGA图像处理12_常用算法_饱和度调节
  17. 真正厉害的人,都在延迟满足
  18. Centos-7使用的性能监控工具
  19. 【Python技能树共建】Python爬虫模拟登录
  20. SIM7600怎么打电话,怎么电话通信

热门文章

  1. python推箱子游戏代码_推箱子游戏,推箱子游戏代码python实现
  2. python3使用smtplib发邮件被退回
  3. python有理数_有理数生成器(Python)
  4. 【读书笔记】你离考研成功就差这本书
  5. [投资笔记]2016-11-25日
  6. qt实现涂鸦板_Qt之旅--- 10 涂鸦板
  7. unity自动生成敌人_Unity学习笔记二:敌人模块和敌人生成器模块脚本编写思路梳理(2)...
  8. 计算机本科结题验收报告怎么写,课题结题鉴定书
  9. John Gaar “Slow Rollin” WA47 WA87 WA14麦克风
  10. 31、键树的插入、查找(孩子兄弟存储结构)