Looping for array lists and adding values which match two array lists into a new one












1















I'm trying to make a program that matches a clients interests with aspects of a holiday, I have an array list of holidays and an array list of strings for the clients interests and I wanted to create a new array list which would add all elements that are contained in both. This is what I have but it comes up with a null pointer exception, Any ideas where I've gone wrong?
the debugger points towards the disjoint and at " int c1size = c1.size();"
Relevant parts of code...



In main...



ClientExt1 marina = new ClientExt1("Marina",14321,"marina.calder1@btinternet.com");
ArrayList<String> interests = new ArrayList<>();
interests.add("History");
interests.add("Music");
marina.setInterests(interests);
holidaySeller.getHolidayMatches(marina);


Client...



public class ClientExt1 {

private String name;
private int id;
private String email;
private HolidayExt1 holidayBooked;
private ArrayList<String> interests;

public ClientExt1(String name, int id, String email){
this.name=name;
this.id=id;
this.email=email;


}

public void setInterests(ArrayList interests) {
this.interests=interests;
}

public ArrayList<String> getInterests(){
return interests;


Company class...



public class CompanyExt1 {
protected ArrayList<StaffExt1> staffMembers;
protected ArrayList<HolidayExt1> holidays;
protected ArrayList<GuideExt1> holidayGuides;
protected ArrayList<AdventureExt1> adventureHolidays;
protected ArrayList<CultureExt1> cultureHolidays;
private ArrayList<String> matchedHolidays;


public ArrayList<String> findHolidayMatch(ClientExt1 client) {
ArrayList interests = client.getInterests();
int i;
for (i = 0; i < holidays.size() && i< interests.size(); i++) {
if (!Collections.disjoint(holidays.get(i).getAspects(), interests)) {
matchedHolidays.add(holidays.get(i).getName());

}
}
return matchedHolidays;
}

public void getHolidayMatches(ClientExt1 client){
System.out.println(client.getName() + ", the holidays recommended to you based on your interests from this company are:" + findHolidayMatch(client));
}
}









share|improve this question

























  • Add more of your code.

    – preciousbetine
    Nov 24 '18 at 12:33











  • the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

    – Elise
    Nov 24 '18 at 12:37


















1















I'm trying to make a program that matches a clients interests with aspects of a holiday, I have an array list of holidays and an array list of strings for the clients interests and I wanted to create a new array list which would add all elements that are contained in both. This is what I have but it comes up with a null pointer exception, Any ideas where I've gone wrong?
the debugger points towards the disjoint and at " int c1size = c1.size();"
Relevant parts of code...



In main...



ClientExt1 marina = new ClientExt1("Marina",14321,"marina.calder1@btinternet.com");
ArrayList<String> interests = new ArrayList<>();
interests.add("History");
interests.add("Music");
marina.setInterests(interests);
holidaySeller.getHolidayMatches(marina);


Client...



public class ClientExt1 {

private String name;
private int id;
private String email;
private HolidayExt1 holidayBooked;
private ArrayList<String> interests;

public ClientExt1(String name, int id, String email){
this.name=name;
this.id=id;
this.email=email;


}

public void setInterests(ArrayList interests) {
this.interests=interests;
}

public ArrayList<String> getInterests(){
return interests;


Company class...



public class CompanyExt1 {
protected ArrayList<StaffExt1> staffMembers;
protected ArrayList<HolidayExt1> holidays;
protected ArrayList<GuideExt1> holidayGuides;
protected ArrayList<AdventureExt1> adventureHolidays;
protected ArrayList<CultureExt1> cultureHolidays;
private ArrayList<String> matchedHolidays;


public ArrayList<String> findHolidayMatch(ClientExt1 client) {
ArrayList interests = client.getInterests();
int i;
for (i = 0; i < holidays.size() && i< interests.size(); i++) {
if (!Collections.disjoint(holidays.get(i).getAspects(), interests)) {
matchedHolidays.add(holidays.get(i).getName());

}
}
return matchedHolidays;
}

public void getHolidayMatches(ClientExt1 client){
System.out.println(client.getName() + ", the holidays recommended to you based on your interests from this company are:" + findHolidayMatch(client));
}
}









share|improve this question

























  • Add more of your code.

    – preciousbetine
    Nov 24 '18 at 12:33











  • the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

    – Elise
    Nov 24 '18 at 12:37
















1












1








1








I'm trying to make a program that matches a clients interests with aspects of a holiday, I have an array list of holidays and an array list of strings for the clients interests and I wanted to create a new array list which would add all elements that are contained in both. This is what I have but it comes up with a null pointer exception, Any ideas where I've gone wrong?
the debugger points towards the disjoint and at " int c1size = c1.size();"
Relevant parts of code...



In main...



ClientExt1 marina = new ClientExt1("Marina",14321,"marina.calder1@btinternet.com");
ArrayList<String> interests = new ArrayList<>();
interests.add("History");
interests.add("Music");
marina.setInterests(interests);
holidaySeller.getHolidayMatches(marina);


Client...



public class ClientExt1 {

private String name;
private int id;
private String email;
private HolidayExt1 holidayBooked;
private ArrayList<String> interests;

public ClientExt1(String name, int id, String email){
this.name=name;
this.id=id;
this.email=email;


}

public void setInterests(ArrayList interests) {
this.interests=interests;
}

public ArrayList<String> getInterests(){
return interests;


Company class...



public class CompanyExt1 {
protected ArrayList<StaffExt1> staffMembers;
protected ArrayList<HolidayExt1> holidays;
protected ArrayList<GuideExt1> holidayGuides;
protected ArrayList<AdventureExt1> adventureHolidays;
protected ArrayList<CultureExt1> cultureHolidays;
private ArrayList<String> matchedHolidays;


public ArrayList<String> findHolidayMatch(ClientExt1 client) {
ArrayList interests = client.getInterests();
int i;
for (i = 0; i < holidays.size() && i< interests.size(); i++) {
if (!Collections.disjoint(holidays.get(i).getAspects(), interests)) {
matchedHolidays.add(holidays.get(i).getName());

}
}
return matchedHolidays;
}

public void getHolidayMatches(ClientExt1 client){
System.out.println(client.getName() + ", the holidays recommended to you based on your interests from this company are:" + findHolidayMatch(client));
}
}









share|improve this question
















I'm trying to make a program that matches a clients interests with aspects of a holiday, I have an array list of holidays and an array list of strings for the clients interests and I wanted to create a new array list which would add all elements that are contained in both. This is what I have but it comes up with a null pointer exception, Any ideas where I've gone wrong?
the debugger points towards the disjoint and at " int c1size = c1.size();"
Relevant parts of code...



In main...



ClientExt1 marina = new ClientExt1("Marina",14321,"marina.calder1@btinternet.com");
ArrayList<String> interests = new ArrayList<>();
interests.add("History");
interests.add("Music");
marina.setInterests(interests);
holidaySeller.getHolidayMatches(marina);


Client...



public class ClientExt1 {

private String name;
private int id;
private String email;
private HolidayExt1 holidayBooked;
private ArrayList<String> interests;

public ClientExt1(String name, int id, String email){
this.name=name;
this.id=id;
this.email=email;


}

public void setInterests(ArrayList interests) {
this.interests=interests;
}

public ArrayList<String> getInterests(){
return interests;


Company class...



public class CompanyExt1 {
protected ArrayList<StaffExt1> staffMembers;
protected ArrayList<HolidayExt1> holidays;
protected ArrayList<GuideExt1> holidayGuides;
protected ArrayList<AdventureExt1> adventureHolidays;
protected ArrayList<CultureExt1> cultureHolidays;
private ArrayList<String> matchedHolidays;


public ArrayList<String> findHolidayMatch(ClientExt1 client) {
ArrayList interests = client.getInterests();
int i;
for (i = 0; i < holidays.size() && i< interests.size(); i++) {
if (!Collections.disjoint(holidays.get(i).getAspects(), interests)) {
matchedHolidays.add(holidays.get(i).getName());

}
}
return matchedHolidays;
}

public void getHolidayMatches(ClientExt1 client){
System.out.println(client.getName() + ", the holidays recommended to you based on your interests from this company are:" + findHolidayMatch(client));
}
}






java arraylist






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 12:50









Nicholas K

7,33661536




7,33661536










asked Nov 24 '18 at 12:29









EliseElise

62




62













  • Add more of your code.

    – preciousbetine
    Nov 24 '18 at 12:33











  • the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

    – Elise
    Nov 24 '18 at 12:37





















  • Add more of your code.

    – preciousbetine
    Nov 24 '18 at 12:33











  • the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

    – Elise
    Nov 24 '18 at 12:37



















Add more of your code.

– preciousbetine
Nov 24 '18 at 12:33





Add more of your code.

– preciousbetine
Nov 24 '18 at 12:33













the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

– Elise
Nov 24 '18 at 12:37







the debugger points towards the disjoint from Collections and at " int c1size = c1.size();"

– Elise
Nov 24 '18 at 12:37














1 Answer
1






active

oldest

votes


















0














You need to initialize holidays before you use it and matchedHolidays before you add values to it in findHolidayMatch



I would actually make matchedHolidays a local variable instead of a class member since it is only used in the scope of the findHolidayMatch method.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458157%2flooping-for-array-lists-and-adding-values-which-match-two-array-lists-into-a-new%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You need to initialize holidays before you use it and matchedHolidays before you add values to it in findHolidayMatch



    I would actually make matchedHolidays a local variable instead of a class member since it is only used in the scope of the findHolidayMatch method.






    share|improve this answer






























      0














      You need to initialize holidays before you use it and matchedHolidays before you add values to it in findHolidayMatch



      I would actually make matchedHolidays a local variable instead of a class member since it is only used in the scope of the findHolidayMatch method.






      share|improve this answer




























        0












        0








        0







        You need to initialize holidays before you use it and matchedHolidays before you add values to it in findHolidayMatch



        I would actually make matchedHolidays a local variable instead of a class member since it is only used in the scope of the findHolidayMatch method.






        share|improve this answer















        You need to initialize holidays before you use it and matchedHolidays before you add values to it in findHolidayMatch



        I would actually make matchedHolidays a local variable instead of a class member since it is only used in the scope of the findHolidayMatch method.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 24 '18 at 13:14

























        answered Nov 24 '18 at 13:03









        Joakim DanielsonJoakim Danielson

        9,3233724




        9,3233724
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458157%2flooping-for-array-lists-and-adding-values-which-match-two-array-lists-into-a-new%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Create new schema in PostgreSQL using DBeaver

            Deepest pit of an array with Javascript: test on Codility

            Costa Masnaga