Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #33305

Re: stream collect with own class

From Eric Sosman <esosman@comcast-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: stream collect with own class
Date 2015-12-05 08:34 -0500
Organization A noiseless patient Spider
Message-ID <n3up01$ft2$1@dont-email.me> (permalink)
References <ebc5a67f-5968-4b4e-8461-913f69587492@googlegroups.com> <n3s61p$h2a$1@dont-email.me> <82287705-7d7d-46b8-bbc7-6a78e6568079@googlegroups.com>

Show all headers | View raw


On 12/4/2015 5:46 PM, Philipp Kraus wrote:
> Am Freitag, 4. Dezember 2015 14:58:48 UTC+1 schrieb Eric Sosman:
>> On 12/4/2015 8:12 AM, Philipp Kraus wrote:
>>> Hello,
>>>
>>> I'm using streams and I would like to create "fuzzy logic implications". In short call, I have a collection with
>>>
>>> Set<IFuzzy> x;
>>>
>>> and my IFuzzy interface is defined like
>>>
>>> public interface IFuzzy
>>> {
>>>        public Boolean getResult();
>>>
>>>        public Double getFuzzy();
>>> }
>>>
>>> I run in my code
>>>
>>> IFuzzy y = x.stream()......
>>>
>>> I would like to implode / aggregate each IFuzzy object into one result, so I need to call on each element from x the getResult() and the getFuzzy() method and collect / implode the data.
>>>
>>> How can I do this call with a stream operation? IMHO I need to write an operator like allMatch()
>>
>>       If I understand you correctly, you want to combine information
>> from many IFuzzy's into a single IFuzzy instance.  (Just ignore me
>> if I've understood *in*correctly.)  In that case, you need some kind
>> of a .reduce() operation, either something from the Collectors class
>> or something you write yourself.
>
> Yes, that's correct. I have found the Collector<T,A,B> interface, but how I can implement this in a correct way (for stream and parallelstream)? IMHO T is the type IFuzyy, but A and B? Is is correct to define T=A=B => Collector<T,T,T> ?

     Why would you want a Collector?  You're trying to combine a Set of
IFuzzy's into *one* IFuzzy, not into a collection of (modified, derived,
whatever) IFuzzy's.

     (Aside: The JavaDoc for SE 8 lists gives Collector's type parameters
as <T,A,R>, not <T,A,B>.  Did you misread R as B, or are you looking at
some other description?)

     I'm still not clear on what you're trying to do.  Perhaps it would
help me understand if you showed the IFuzzy's => IFuzzy transformation:
How would you write it using a plain old `for(IFuzzy i : x)' loop?

-- 
esosman@comcast-dot-net.invalid
"Don't be afraid of work. Make work afraid of you." -- TLM

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

stream collect with own class Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2015-12-04 05:12 -0800
  Re: stream collect with own class Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-12-04 08:58 -0500
    Re: stream collect with own class Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2015-12-04 14:46 -0800
      Re: stream collect with own class Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-12-05 08:34 -0500
        Re: stream collect with own class Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2015-12-05 07:36 -0800
          Re: stream collect with own class Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-12-05 10:57 -0500

csiph-web