What about NavigableSet? ;) On 12 January 2016 at 13:57, Gary Gregory <[email protected]> wrote:
> 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 > -- Matt Sicker <[email protected]>
