From f5f22e8f64b0d4b358fdfb2766ad51281fbdc909 Mon Sep 17 00:00:00 2001 From: github Date: Thu, 27 Apr 2023 09:40:57 -0700 Subject: [PATCH] Update --- _notebooks/2023-04-26-HW-Rohangroup.ipynb | 120 ++++++++++++++++------ 1 file changed, 91 insertions(+), 29 deletions(-) diff --git a/_notebooks/2023-04-26-HW-Rohangroup.ipynb b/_notebooks/2023-04-26-HW-Rohangroup.ipynb index ccde974..7487637 100644 --- a/_notebooks/2023-04-26-HW-Rohangroup.ipynb +++ b/_notebooks/2023-04-26-HW-Rohangroup.ipynb @@ -361,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": { "vscode": { "languageId": "java" @@ -371,51 +371,113 @@ "source": [ "// FRQ Array Lists\n", "//Part a\n", - "public void addMembers(String[] names, int gradYear) {\n", - " for (String name : names) {\n", - " MemberInfo member = new MemberInfo(name, gradYear, true); // Assuming all new members are initially in good standing\n", - " memberList.add(member);\n", + "class MemberInfo {\n", + " private String name;\n", + " private int gradYear;\n", + " private boolean goodStanding;\n", + "\n", + " public MemberInfo(String name, int gradYear, boolean goodStanding) {\n", + " this.name = name;\n", + " this.gradYear = gradYear;\n", + " this.goodStanding = goodStanding;\n", + " }\n", + "\n", + " public int getGradYear() {\n", + " return gradYear;\n", + " }\n", + "\n", + " public boolean inGoodStanding() {\n", + " return goodStanding;\n", + " }\n", + "\n", + " public String getMemberName() {\n", + " return name;\n", " }\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "vscode": { "languageId": "java" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Removed members who graduated in 2024:\n", + "2024: John\n", + "2024: Emily\n", + "2024: David\n" + ] + } + ], "source": [ "//Part B\n", - "public ArrayList removeMembers(int year) {\n", - " ArrayList graduatedMembers = new ArrayList<>();\n", - "\n", - " Iterator iterator = memberList.iterator();\n", - " while (iterator.hasNext()) {\n", - " MemberInfo member = iterator.next();\n", - " if (member.getGradYear() <= year && member.inGoodStanding()) {\n", - " graduatedMembers.add(member);\n", - " iterator.remove();\n", + "import java.util.ArrayList;\n", + "\n", + "public class ClubMembers {\n", + " private ArrayList memberList;\n", + "\n", + " public ClubMembers() {\n", + " memberList = new ArrayList<>();\n", + " }\n", + "\n", + " /**\n", + " * Adds new club members to memberList.\n", + " * Precondition: names is a non-empty array.\n", + " */\n", + " public void addMembers(String[] names, int gradYear) {\n", + " for (String name : names) {\n", + " MemberInfo member = new MemberInfo(name, gradYear, true);\n", + " memberList.add(member);\n", " }\n", " }\n", "\n", - " return graduatedMembers;\n", - "}" + " /**\n", + " * Removes members who have graduated and returns a list of members who have\n", + " * graduated and are in good standing.\n", + " */\n", + " public ArrayList removeMembers(int year) {\n", + " ArrayList graduatedMembers = new ArrayList<>();\n", + " for (int i = 0; i < memberList.size(); i++) {\n", + " MemberInfo member = memberList.get(i);\n", + " if (member.getGradYear() == year && member.inGoodStanding()) {\n", + " graduatedMembers.add(member);\n", + " memberList.remove(i);\n", + " i--; // Decrement the index as the list size has changed\n", + " }\n", + " }\n", + " return graduatedMembers;\n", + " }\n", + "\n", + " // Tester method\n", + " public static void main(String[] args) {\n", + " ClubMembers club = new ClubMembers();\n", + "\n", + " // Adding members\n", + " String[] names = {\"John\", \"Emily\", \"David\"};\n", + " int gradYear = 2024;\n", + " club.addMembers(names, gradYear);\n", + "\n", + " // Removing members who graduated in a specific year\n", + " int yearToRemove = 2024;\n", + " ArrayList removedMembers = club.removeMembers(yearToRemove);\n", + "\n", + " // Displaying removed members\n", + " System.out.println(\"Removed members who graduated in \" + yearToRemove + \":\");\n", + " for (MemberInfo member : removedMembers) {\n", + " System.out.println(member.getGradYear() + \": \" + member.getMemberName());\n", + " }\n", + " }\n", + "}\n", + "\n", + "ClubMembers.main(null);" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "vscode": { - "languageId": "java" - } - }, - "outputs": [], - "source": [] } ], "metadata": {