For completeness' sake: A set can also be ordered: https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html
Gary On Tue, Jan 12, 2016 at 4:09 AM, Mikael Ståldal <[email protected]> wrote: > List is a Collection with the additional semantics of being ordered. Set > is a Collection with the additional semantics of having no duplicates. > > So is the order of the plugins significant? If not it should be Collection > or Iterable (or possibly Set) rather than List. If the order is > significant, we should keep it as List. > > On Tue, Jan 12, 2016 at 12:59 PM, Mikael Ståldal < > [email protected]> wrote: > >> If you want it more generic, it should be Iterable rather than Iterator. >> >> On Tue, Jan 12, 2016 at 6:34 AM, sampath kumar <[email protected]> >> wrote: >> >>> You Can still achieve enhanced for loop using iterator by using >>> following modification. >>> >>> I apologize if this thread going in different context. We can go with >>> either List or Set depending on the Requirement. >>> >>> *Code Snippet:* >>> >>> import java.util.HashSet; >>> import java.util.Iterator; >>> import java.util.Set; >>> >>> public class PluginIterator implements Iterable<PluginIterator.Plugin> { >>> >>> static class Plugin { >>> String name; >>> Plugin(String name) { >>> this.name = name; >>> } >>> public String toString() { >>> return "Plugin{" + name + "}"; >>> } >>> } >>> >>> Set<Plugin> set = new HashSet<Plugin>(); >>> >>> public void addPenguin(Plugin p) { >>> set.add(p); >>> } >>> >>> public Iterator<Plugin> getPlugins() { >>> return set.iterator(); >>> } >>> >>> public Iterator<Plugin> iterator() { >>> return getPlugins(); >>> } >>> >>> public static void main(String args[]) { >>> PluginIterator pluginIterators = new PluginIterator(); >>> Plugin plugin1 = new Plugin("Plugin-1"); >>> Plugin plugin2 = new Plugin("Plugin-2"); >>> Plugin plugin3 = new Plugin("Plugin-3"); >>> Plugin plugin4 = new Plugin("Plugin-4"); >>> pluginIterators.addPenguin(plugin1); >>> pluginIterators.addPenguin(plugin2); >>> pluginIterators.addPenguin(plugin3); >>> pluginIterators.addPenguin(plugin4); >>> for (Plugin p : pluginIterators) { >>> System.out.println(p); >>> } >>> } >>> } >>> >>> On Tue, Jan 12, 2016 at 10:24 AM, Gary Gregory <[email protected]> >>> wrote: >>> >>>> I dislike this iterator business very much, and you can't use it in a >>>> for each loop. >>>> >>>> Gary >>>> >>>> On Mon, Jan 11, 2016 at 8:46 PM, sampath kumar <[email protected]> >>>> wrote: >>>> >>>>> How about this, Unmodifiable Iterator >>>>> >>>>> Iterator<String> getPluginPackages(); >>>>> >>>>> On Tue, Jan 12, 2016 at 9:50 AM, Gary Gregory <[email protected]> >>>>> wrote: >>>>> >>>>>> List<String> getPluginPackages(); >>>>>> >>>>>> G >>>>>> >>>>>> On Mon, Jan 11, 2016 at 8:12 PM, Paul Benedict <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Thu can only use Set if you have a notion of equality and >>>>>>> comparison. Do you for this collection? >>>>>>> On Jan 11, 2016 9:48 PM, "Gary Gregory" <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Well, not really, I'd like to express whether the collection allows >>>>>>>> for duplicates or not, if not, use a set. >>>>>>>> >>>>>>>> Gary >>>>>>>> >>>>>>>> On Mon, Jan 11, 2016 at 7:08 PM, Matt Sicker <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Even a Collection works well for this. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Monday, 11 January 2016, Gary Gregory <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> On Mon, Jan 11, 2016 at 5:19 PM, Ralph Goers < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> It is returning a List already. Does it really matter much? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> It is not indeed critical. It's just a finer point of declaring >>>>>>>>>> the intention of the data model, either duplicates are allowed and >>>>>>>>>> expected, or not. >>>>>>>>>> >>>>>>>>>> Gary >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Ralph >>>>>>>>>>> >>>>>>>>>>> On Jan 11, 2016, at 6:04 PM, Gary Gregory < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>> Should APIs like: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> org.apache.logging.log4j.core.config.Configuration.getPluginPackages() >>>>>>>>>>> >>>>>>>>>>> really return a List instead of a Set? >>>>>>>>>>> >>>>>>>>>>> Gary >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> E-Mail: [email protected] | [email protected] >>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> E-Mail: [email protected] | [email protected] >>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Matt Sicker <[email protected]> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> E-Mail: [email protected] | [email protected] >>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>> Home: http://garygregory.com/ >>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> E-Mail: [email protected] | [email protected] >>>>>> Java Persistence with Hibernate, Second Edition >>>>>> <http://www.manning.com/bauer3/> >>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>> Blog: http://garygregory.wordpress.com >>>>>> Home: http://garygregory.com/ >>>>>> Tweet! http://twitter.com/GaryGregory >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> Sampath >>>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: [email protected] | [email protected] >>>> Java Persistence with Hibernate, Second Edition >>>> <http://www.manning.com/bauer3/> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>> Spring Batch in Action <http://www.manning.com/templier/> >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>>> >>> >>> >>> >>> -- >>> Regards, >>> Sampath >>> >> >> >> >> -- >> [image: MagineTV] >> >> *Mikael Ståldal* >> Senior software developer >> >> *Magine TV* >> [email protected] >> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >> >> Privileged and/or Confidential Information may be contained in this >> message. If you are not the addressee indicated in this message >> (or responsible for delivery of the message to such a person), you may >> not copy or deliver this message to anyone. In such case, >> you should destroy this message and kindly notify the sender by reply >> email. >> > > > > -- > [image: MagineTV] > > *Mikael Ståldal* > Senior software developer > > *Magine TV* > [email protected] > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > Privileged and/or Confidential Information may be contained in this > message. If you are not the addressee indicated in this message > (or responsible for delivery of the message to such a person), you may not > copy or deliver this message to anyone. In such case, > you should destroy this message and kindly notify the sender by reply > email. > -- E-Mail: [email protected] | [email protected] Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
