for loop - How can I simplify my Java code? -
i new java , stuck on following assignment. i've been asked create method in addressbook class returns person object highest total activitylevel.
i have created getsocialmediaactivitylevel(), maxvalue() , findmostsocial() methods.
the findmostsocial method return value after, description assignment includes statement: "requires design simple algorithm , integrate existing classes." seems i've used lot of unnecessary code, i'm unsure how simplify i've done. appreciated.
public class socialmediaaccount { private string userid; private string websitename; private string websiteurl; private int activitylevel; public socialmediaaccount(string userid, string websitename, string websiteurl, int activitylevel) { this.userid = userid; this.websitename = websitename; this.websiteurl = websiteurl; this.activitylevel = activitylevel; } public void addsocialmediaaccount(string userid, string websitename, string websiteurl, int activitylevel) { socialmediaaccount account1; account1 = new socialmediaaccount(userid, websitename, websiteurl, activitylevel); socialmediaaccounts.add(account1); }
import java.util.arraylist; public class person { private string firstname; private string surname; private string mobile; private string email; private arraylist<socialmediaaccount> socialmediaaccounts; //returns combined activitylevel person's socialmediaaccounts. public int getsocialmediaactivitylevel(){ int total = 0; for(socialmediaaccount e : socialmediaaccounts){ total += e.getactivitylevel(); } return total; }
import java.util.arraylist; import java.util.collections; public class addressbook { private arraylist<person> contacts; public addressbook(){ contacts = new arraylist<>(); } //returns highest combined activitylevel in arraylist contacts public int maxvalue(){ arraylist<integer> maxactivitylevel = new arraylist<>(); for(person e : contacts){ maxactivitylevel.add(e.getsocialmediaactivitylevel()); } int maxvalue = collections.max(maxactivitylevel); return maxvalue; } //returns person object in contacts arraylist highest combined activitylevel public person findmostsocial(){ for(person p: contacts){ if(maxvalue() == p.getsocialmediaactivitylevel()){ return p; } } return null; }
i think need here quick sort algorithm here determine max value of social media activity in list of persons. so, suggest replace maxvalue() , findmostsocial() methods method implementing quicksort. here 1 such implementation reference. cheers
Comments
Post a Comment