How to return Object from a Collection?











up vote
-1
down vote

favorite












Given a Collection, how do I return a Object from that Collection knowing the index i?



I can't use the "get" method, so what should I use?



public static void remove(Collection coll, Predicate pred) {
for(int i=0; i<coll.size(); i++) {
if(pred.test(coll.get(i))) {
coll.remove(i);
}
}
}


Error: The method get(int) is undefined for the type Collection










share|improve this question




















  • 1




    Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
    – deHaar
    Nov 22 at 15:30












  • @deHaar added..
    – user10691569
    Nov 22 at 15:33






  • 2




    get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
    – Thomas
    Nov 22 at 15:34








  • 1




    @deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
    – Thomas
    Nov 22 at 15:37










  • @Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
    – user10691569
    Nov 22 at 15:39















up vote
-1
down vote

favorite












Given a Collection, how do I return a Object from that Collection knowing the index i?



I can't use the "get" method, so what should I use?



public static void remove(Collection coll, Predicate pred) {
for(int i=0; i<coll.size(); i++) {
if(pred.test(coll.get(i))) {
coll.remove(i);
}
}
}


Error: The method get(int) is undefined for the type Collection










share|improve this question




















  • 1




    Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
    – deHaar
    Nov 22 at 15:30












  • @deHaar added..
    – user10691569
    Nov 22 at 15:33






  • 2




    get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
    – Thomas
    Nov 22 at 15:34








  • 1




    @deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
    – Thomas
    Nov 22 at 15:37










  • @Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
    – user10691569
    Nov 22 at 15:39













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











Given a Collection, how do I return a Object from that Collection knowing the index i?



I can't use the "get" method, so what should I use?



public static void remove(Collection coll, Predicate pred) {
for(int i=0; i<coll.size(); i++) {
if(pred.test(coll.get(i))) {
coll.remove(i);
}
}
}


Error: The method get(int) is undefined for the type Collection










share|improve this question















Given a Collection, how do I return a Object from that Collection knowing the index i?



I can't use the "get" method, so what should I use?



public static void remove(Collection coll, Predicate pred) {
for(int i=0; i<coll.size(); i++) {
if(pred.test(coll.get(i))) {
coll.remove(i);
}
}
}


Error: The method get(int) is undefined for the type Collection







java






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 at 15:32

























asked Nov 22 at 15:29









user10691569

93




93








  • 1




    Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
    – deHaar
    Nov 22 at 15:30












  • @deHaar added..
    – user10691569
    Nov 22 at 15:33






  • 2




    get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
    – Thomas
    Nov 22 at 15:34








  • 1




    @deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
    – Thomas
    Nov 22 at 15:37










  • @Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
    – user10691569
    Nov 22 at 15:39














  • 1




    Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
    – deHaar
    Nov 22 at 15:30












  • @deHaar added..
    – user10691569
    Nov 22 at 15:33






  • 2




    get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
    – Thomas
    Nov 22 at 15:34








  • 1




    @deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
    – Thomas
    Nov 22 at 15:37










  • @Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
    – user10691569
    Nov 22 at 15:39








1




1




Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
– deHaar
Nov 22 at 15:30






Please show us your code and tell us why you cannot use the get() method, please. First idea: for-each through the collection and return the object that matches your condition. By the way, what is the condition?
– deHaar
Nov 22 at 15:30














@deHaar added..
– user10691569
Nov 22 at 15:33




@deHaar added..
– user10691569
Nov 22 at 15:33




2




2




get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
– Thomas
Nov 22 at 15:34






get(index) is not defined in Collection but only in List. Either use List or use an iterator to "go" to index i and return the element at that index. That's necessary because some collections don't support the notion of an index (e.g. Set) but they all support iteration. Note that depending on the type of collection (e.g. when using a set) the iteration order might change so the element at "index" i might not always be the same.
– Thomas
Nov 22 at 15:34






1




1




@deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
– Thomas
Nov 22 at 15:37




@deHaar well, you can do that but it's easier using an iterator: once the iterator "points" to the element you want to remove you just call remove() on the iterator and then you're able to safely able to go on to the next elements.
– Thomas
Nov 22 at 15:37












@Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
– user10691569
Nov 22 at 15:39




@Thomas I used ListIterator<Integer> it = coll.listIterator(); but it says that the method listIterator is undefined for the type Collection
– user10691569
Nov 22 at 15:39












2 Answers
2






active

oldest

votes

















up vote
0
down vote













Java's Collection has no such method as get(). Use an iterator :



    Iterator<Object> iterator = coll.iterator();
while (iterator.hasNext()) {
// Your code here
}





share|improve this answer





















  • I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
    – TheWildHealer
    Nov 22 at 15:46


















up vote
0
down vote













You can try this.



  public static void remove(Collection coll, Predicate pred) {
Iterator iterator = coll.iterator();
while (iterator.hasNext()) {
if (pred.test(iterator.next())) {
iterator.remove();
}
}
}





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',
    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%2f53434148%2fhow-to-return-object-from-a-collection%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    Java's Collection has no such method as get(). Use an iterator :



        Iterator<Object> iterator = coll.iterator();
    while (iterator.hasNext()) {
    // Your code here
    }





    share|improve this answer





















    • I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
      – TheWildHealer
      Nov 22 at 15:46















    up vote
    0
    down vote













    Java's Collection has no such method as get(). Use an iterator :



        Iterator<Object> iterator = coll.iterator();
    while (iterator.hasNext()) {
    // Your code here
    }





    share|improve this answer





















    • I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
      – TheWildHealer
      Nov 22 at 15:46













    up vote
    0
    down vote










    up vote
    0
    down vote









    Java's Collection has no such method as get(). Use an iterator :



        Iterator<Object> iterator = coll.iterator();
    while (iterator.hasNext()) {
    // Your code here
    }





    share|improve this answer












    Java's Collection has no such method as get(). Use an iterator :



        Iterator<Object> iterator = coll.iterator();
    while (iterator.hasNext()) {
    // Your code here
    }






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 22 at 15:42









    TheWildHealer

    405216




    405216












    • I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
      – TheWildHealer
      Nov 22 at 15:46


















    • I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
      – TheWildHealer
      Nov 22 at 15:46
















    I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
    – TheWildHealer
    Nov 22 at 15:46




    I typed the iterator as <Object>, and you should make your collection as Collection<Object> unless you know you are going to get a defined type of collection.
    – TheWildHealer
    Nov 22 at 15:46












    up vote
    0
    down vote













    You can try this.



      public static void remove(Collection coll, Predicate pred) {
    Iterator iterator = coll.iterator();
    while (iterator.hasNext()) {
    if (pred.test(iterator.next())) {
    iterator.remove();
    }
    }
    }





    share|improve this answer

























      up vote
      0
      down vote













      You can try this.



        public static void remove(Collection coll, Predicate pred) {
      Iterator iterator = coll.iterator();
      while (iterator.hasNext()) {
      if (pred.test(iterator.next())) {
      iterator.remove();
      }
      }
      }





      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        You can try this.



          public static void remove(Collection coll, Predicate pred) {
        Iterator iterator = coll.iterator();
        while (iterator.hasNext()) {
        if (pred.test(iterator.next())) {
        iterator.remove();
        }
        }
        }





        share|improve this answer












        You can try this.



          public static void remove(Collection coll, Predicate pred) {
        Iterator iterator = coll.iterator();
        while (iterator.hasNext()) {
        if (pred.test(iterator.next())) {
        iterator.remove();
        }
        }
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 22 at 15:56









        joemokenela

        1465




        1465






























            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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%2f53434148%2fhow-to-return-object-from-a-collection%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

            Trompette piccolo

            Slow SSRS Report in dynamic grouping and multiple parameters

            Simon Yates (cyclisme)