Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #35207
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Daniel Pitts <usenet@coloraura.com> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: DeDup an ArrayList |
| Date | Fri, 5 Aug 2016 08:37:36 -0700 |
| Organization | A noiseless patient Spider |
| Lines | 84 |
| Message-ID | <no2bs0$u7g$1@dont-email.me> (permalink) |
| References | <21r7qb1srdvnieuufjquie2qrfujso6l7p@4ax.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Fri, 5 Aug 2016 15:37:36 -0000 (UTC) |
| Injection-Info | mx02.eternal-september.org; posting-host="52d75d4f464574e0a92ef19ca2bbcfd4"; logging-data="30960"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18DqZqru4shI8ghricmW8tkZQhOvuD5kvg=" |
| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
| In-Reply-To | <21r7qb1srdvnieuufjquie2qrfujso6l7p@4ax.com> |
| Cancel-Lock | sha1:4WctsyMuHxYYSrgH+FN+rS4hDAc= |
| Xref | csiph.com comp.lang.java.programmer:35207 |
Show key headers only | View raw
On 8/4/16 6:35 PM, Roedy Green wrote:
> This looks like trivial task, but every time I work on it, it keeps
> ballooning in complexity.
>
> I wish to deDup an ArrayList. Any two strings equalIgnoreCase are
> considered dups. One should be removed. The order of the items should
> be otherwise be undisturbed.
>
> Part of the trouble is removing an element from an ArrayList makes you
> lose track of where you are.
>
Stream version:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
import java.util.*;
import java.util.stream.Collectors;
public class Dedup {
public static void main(String[] args) {
final List<String> list = new ArrayList<>(Arrays.asList(
"First",
"Second",
"first",
"Third",
"third",
"second",
"Last"));
final List<String> result =
list.stream()
.collect(
Collectors.groupingBy(
String::toLowerCase,
LinkedHashMap<String, List<String>>::new,
Collectors.toList()
)
)
.entrySet()
.stream()
.map(Map.Entry::getValue)
.map(l -> l.get(0))
.collect(Collectors.toList());
result.forEach(System.out::println);
}
}
************************************************************************************************
In-place non-stream version:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
import java.util.*;
public class Dedup {
public static void main(String[] args) {
final List<String> list = new ArrayList<>(Arrays.asList(
"First",
"Second",
"first",
"Third",
"third",
"second",
"Last"));
final Set<String> exists = new HashSet<>();
for (final Iterator<String> i = list.iterator(); i.hasNext();) {
if (!exists.add(i.next().toLowerCase())) {
i.remove();
}
}
list.forEach(System.out::println);
}
}
************************************************************************************************
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
DeDup an ArrayList Roedy Green <inquiry@mindprod.com> - 2016-08-04 18:35 -0700
Re: DeDup an ArrayList Andreas Leitgeb <avl@logic.at> - 2016-08-05 02:05 +0000
Re: DeDup an ArrayList Arne Vajhøj <arne@vajhoej.dk> - 2016-08-04 22:41 -0400
Re: DeDup an ArrayList Lew <lewbloch@gmail.com> - 2016-08-05 15:38 -0700
Re: DeDup an ArrayList Andreas Leitgeb <avl@logic.at> - 2016-08-06 12:10 +0000
Re: DeDup an ArrayList Roedy Green <inquiry@mindprod.com> - 2016-08-04 19:06 -0700
Re: DeDup an ArrayList Eric Douglas <e.d.programmer@gmail.com> - 2016-08-05 05:16 -0700
Re: DeDup an ArrayList Andreas Leitgeb <avl@logic.at> - 2016-08-05 15:30 +0000
Re: DeDup an ArrayList Eric Douglas <e.d.programmer@gmail.com> - 2016-08-05 10:10 -0700
Re: DeDup an ArrayList Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-08-05 13:51 -0400
Re: DeDup an ArrayList Eric Douglas <e.d.programmer@gmail.com> - 2016-08-05 12:16 -0700
Re: DeDup an ArrayList Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-08-05 15:38 -0400
Re: DeDup an ArrayList Marcel Mueller <news.5.maazl@spamgourmet.org> - 2016-08-06 00:47 +0200
Re: DeDup an ArrayList Arne Vajhøj <arne@vajhoej.dk> - 2016-08-05 09:02 -0400
Re: DeDup an ArrayList Jan Burse <janburse@fastmail.fm> - 2016-08-05 12:52 +0200
Re: DeDup an ArrayList Jan Burse <janburse@fastmail.fm> - 2016-08-05 12:53 +0200
Re: DeDup an ArrayList Jan Burse <janburse@fastmail.fm> - 2016-08-05 13:10 +0200
Re: DeDup an ArrayList Jan Burse <janburse@fastmail.fm> - 2016-08-13 12:26 +0200
Re: DeDup an ArrayList Daniel Pitts <usenet@coloraura.com> - 2016-08-05 08:37 -0700
Re: DeDup an ArrayList Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2016-08-05 08:58 -0700
Re: DeDup an ArrayList Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2016-08-05 09:47 -0700
Re: DeDup an ArrayList Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2016-08-05 19:56 -0700
Re: DeDup an ArrayList Daniel Pitts <usenet@coloraura.com> - 2016-08-06 09:18 -0700
Re: DeDup an ArrayList Marcel Mueller <news.5.maazl@spamgourmet.org> - 2016-08-06 01:04 +0200
Re: DeDup an ArrayList Roedy Green <inquiry@mindprod.com> - 2016-08-05 16:31 -0700
csiph-web