Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #33305
| 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> |
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
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