Как удалить элементы в arrayList по ключу - PullRequest
0 голосов
/ 11 июля 2019
ArrayList<String> single = new ArrayList<String>();
---------         
System.out.println(single)

arrayList восстановил

[Document{{googContentType=realtime, packetsLost=0, id=ssrc_3841594688_recv, type=ssrc, timestamp=2019-07-11T07:18:43.413Z}}
,Document{{googContentType=realtime, packetsLost=0, id=ssrc_239620516_recv, type=ssrc, timestamp=2019-07-11T07:18:42.955Z}}]

желаемый результат

[Document{{ packetsLost=0, timestamp=2019-07-11T07:18:43.413Z}}
,Document{{ packetsLost=0,  timestamp=2019-07-11T07:18:42.955Z}}]

1 Ответ

0 голосов
/ 11 июля 2019

Не обязательно лучшая практика, но вы можете сделать замену регулярных выражений, чтобы удалить пары ключ-значение, которые вам не нужны в конечном результате:

List<String> singleOut = single.stream()
    .map(x -> x.replaceAll("(?:googContentType|id|type)=\\S+\\s*", ""))
    .collect(Collectors.toList());

singleOut.forEach(System.out::println);

Это печатает:

Document{{packetsLost=0, timestamp=2019-07-11T07:18:43.413Z}}
Document{{packetsLost=0, timestamp=2019-07-11T07:18:42.955Z}}

Лучшее решение здесь - вернуться к инструменту / коду, который сгенерировал объекты JSON-esque, и реэкспортировать, содержащий только те ключи packetsLost и timestamp, которые вы хотите отобразить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...