我正在努力创建一种方法,当您输入特定月份(从 1-12)时,会显示该月加入社团类(class)的所有成员。举个例子,
我输入:3(表示“三月”)
输出:15(这表示在同一个月内有 15 名成员加入)
到目前为止,我只有一个打印输出方法,如果您在我的 (joinedInMonth) 方法中输入任何低于 1 或高于 12 的内容,它会给出错误消息,非常感谢一些建议或帮助。
社会阶层:
public class Society
{
private ArrayList<Member> myMembers;
private Member member;
private String societyName;
public Society(String society)
{
myMembers = new ArrayList<Member>();
this.societyName = society;
}
public String getSocietyName()
{
return societyName;
}
public void join(Member member)
{
myMembers.add(member);
}
public void showMember(int listPosition)
{
Member member;
if( listPosition < myMembers.size() )
{
member = myMembers.get(listPosition);
System.out.println("Position " + listPosition + ": " + member);
}
}
public void joinedInMonth(int joined) {
if (joined > 12 || joined < 1) {
System.out.println("Invalid number");
}
}
public int numberOfMembers()
{
return myMembers.size();
}
public void printDetails()
{
for (Member m : myMembers) {
System.out.println("Society Name: " + societyName);
System.out.println(m.toString());
System.out.println("--------------------------");
}
}
成员(member)等级:
public class Member
{
private int month;
private int year;
private String name;
private Society society;
public Member(String name, int month, int year)
{
this.name = name;
this.month = month;
this.year = year;
}
public int getYear()
{
return year;
}
public int getMonth()
{
return month;
}
public String getName()
{
return name;
}
public String toString()
{
return "Name: " + name + ", Month Joined: " + month + ", Year Joined:" + year;
}
}
最佳答案
您可以查看成员并检查每个成员加入的月份:
public void joinedInMonth(int joinedMonth) {
if (joinedMonth > 12 || joinedMonth < 1) {
System.out.println("Invalid number");
}
long numJoined = members.stream().filter(m -> m.getMonth() == joinedMonth).count();
System.out.printf("%d members joined on month %d%n", numJoined, joinedMonth);
}
关于java - 为成员(member)显示不同月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51100538/