logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mikael Ståldal <mikael.stal...@magine.com>
Subject Re: List vs. Set
Date Tue, 12 Jan 2016 12:09:44 GMT
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 <mikael.staldal@magine.com>
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 <sampath088@gmail.com>
> 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 <garydgregory@gmail.com>
>> 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 <sampath088@gmail.com>
>>> wrote:
>>>
>>>> How about this, Unmodifiable Iterator
>>>>
>>>> Iterator<String> getPluginPackages();
>>>>
>>>> On Tue, Jan 12, 2016 at 9:50 AM, Gary Gregory <garydgregory@gmail.com>
>>>> wrote:
>>>>
>>>>> List<String> getPluginPackages();
>>>>>
>>>>> G
>>>>>
>>>>> On Mon, Jan 11, 2016 at 8:12 PM, Paul Benedict <pbenedict@apache.org>
>>>>> 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" <garydgregory@gmail.com>
>>>>>> 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 <boards@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Even a Collection works well for this.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Monday, 11 January 2016, Gary Gregory <garydgregory@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> On Mon, Jan 11, 2016 at 5:19 PM, Ralph Goers <
>>>>>>>>> ralph.goers@dslextreme.com> 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 <garydgregory@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Should APIs like:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.logging.log4j.core.config.Configuration.getPluginPackages()
>>>>>>>>>>
>>>>>>>>>> really return a List instead of a Set?
>>>>>>>>>>
>>>>>>>>>> Gary
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>>>>>>>>> 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: garydgregory@gmail.com | ggregory@apache.org
>>>>>>>>> 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 <boards@gmail.com>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>>>>>> 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: garydgregory@gmail.com | ggregory@apache.org
>>>>> 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: garydgregory@gmail.com | ggregory@apache.org
>>> 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*
> mikael.staldal@magine.com
> 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*
mikael.staldal@magine.com
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.

Mime
View raw message