Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #37713
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Can I put a filter into a lambda? |
| Date | Mon, 4 Dec 2017 08:20:39 -0500 |
| Organization | A noiseless patient Spider |
| Lines | 53 |
| Message-ID | <p03i39$n76$1@dont-email.me> (permalink) |
| References | <321ee28f-bbea-4565-a48e-c0476d9a78d4@googlegroups.com> <ovshh6$8q1$1@dont-email.me> <a7f8b0f0-79cb-4f83-bf77-2ce7d94a2a19@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Mon, 4 Dec 2017 13:20:41 -0000 (UTC) |
| Injection-Info | reader02.eternal-september.org; posting-host="32ce8f705e17a3ca60a7d53b56bc129e"; logging-data="23782"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19CxXyYgP+0apk3iOLVBmhM" |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
| In-Reply-To | <a7f8b0f0-79cb-4f83-bf77-2ce7d94a2a19@googlegroups.com> |
| Content-Language | en-US |
| Cancel-Lock | sha1:RgHx8iBCa4NtsSXtOiowctralyI= |
| Xref | csiph.com comp.lang.java.programmer:37713 |
Show key headers only | View raw
On 12/4/2017 8:03 AM, Eric Douglas wrote:
> On Friday, December 1, 2017 at 4:28:26 PM UTC-5, Eric Sosman wrote:
>> It's not clear what your filter loop is actually doing:
>> the RowFilter seems never to be used, and I can't find any
>> one-argument include() method in any Java SE (8 or 9) class.
>> (You also haven't shown what rowToModelIndex is, but I'll
>> guess it's a Collection<Integer>, possibly List<Integer>).
>> So I'll restate the problem without the table trappings:
>>
>> 1) If getRowFilter() returns null, you want a List of
>> all the values 0 through modelRowCount-1, in order.
>>
>> 2) If getRowFilter() returns non-null, you want a List
>> of the same values, excluding those for which the
>> boolean-valued include(int) method returns false.
>>
>> If that's not the goal, read no further. But if it is
>> (or is close enough for jazz), both cases can be written
>> more simply:
>>
>> // Case 1:
>> rowModelIndex = IntStream.range(0, modelRowCount)
>> .mapToObj(Integer::valueOf)
>> .collect(Collectors.toList());
>>
>> // Case 2:
>> rowModelIndex = IntStream.range(0, modelRowCount)
>> .filter((value) -> include(value))
>> .mapToObj(Integer::valueOf)
>> .collect(Collectors.toList());
>>
>> Final point: If you can't stop worrying about efficiency,
>> at the very least stop *guessing* about it!
>>
> rowToModelIndex is an ArrayList<Integer>.
If it *must* be an ArrayList (and not some other kind of List),
you might want to change the last bit to
.collect(Collectors.toCollection(ArrayList::new));
Although the toList() method appears to use ArrayList anyhow, it
doesn't guarantee to do so -- meaning that it might use some other
List in a future Java, or in circumstances I haven't studies (e.g.,
it might behave differently with a parallel stream).
> Milliseconds do count in a row filtering method which executes thousands of times.
If performance is important, measure. Don't guess.
--
esosman@comcast-dot-net.invalid
Eleven hundred forty-three days to go.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Can I put a filter into a lambda? Eric Douglas <e.d.programmer@gmail.com> - 2017-12-01 12:52 -0800
Re: Can I put a filter into a lambda? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-12-01 16:28 -0500
Re: Can I put a filter into a lambda? Eric Douglas <e.d.programmer@gmail.com> - 2017-12-04 05:03 -0800
Re: Can I put a filter into a lambda? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-12-04 08:20 -0500
Re: Can I put a filter into a lambda? Eric Douglas <e.d.programmer@gmail.com> - 2017-12-04 05:32 -0800
Re: Can I put a filter into a lambda? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-12-04 09:29 -0500
Re: Can I put a filter into a lambda? Eric Douglas <e.d.programmer@gmail.com> - 2017-12-04 07:14 -0800
Re: Can I put a filter into a lambda? Sebastian <nowhere@nirvana.org> - 2017-12-08 15:00 +0100
csiph-web