java - 为成员(member)显示不同月份

标签 java display

我正在努力创建一种方法,当您输入特定月份(从 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/

相关文章:

java - 我应该选择 i > 1 还是 i >= 1 进行随机洗牌

javascript - 以增量方式显示 SQLite 数据库中的数据

java - "Error executing command: No feature matching camel-sql-orders/0.0.0"

java - 如何通过列表从表中获取记录?

python - 没有条目的 GTK3 组合框移动到有条目的 GTK3 组合框之后。为什么?

JavaScript - 在显示 :none and display:block 之间添加转换

html - 在一列中,另一个高度的一个 div flex

html - 图像不会与父 div 中的文本内联显示

Java 2d 坐标变换

java - 在mysql数据库中使用servlet插入数据