简体   繁体   English

如何使用 Java 流列表进行转换<Map<String,Object> &gt; 列出<String>删除每个流的一部分

[英]How to convert with Java stream List<Map<String,Object>> to List<String> removing part of each Stream

I have a method :我有一个方法:

public List<Map<String, Object>> getAllListsExcept() {
        String query = "SELECT Name FROM " + account.getName()
                + " WHERE NOT (Name LIKE '%1234567%')";
        return SQLHelper.getByQuery(query);
    }

return list:退货清单:

[{name=AQA Chief Officer}, {name=AQA Internal Accounts}, {name=AQA Interactions}, {name=AQA Legacy Planner}, {name=AQA Principal Facilitator}, {name=AQA Regional Program}, {name=cd_AQA Cassattatque}, {name=cd_AQA Kandinskyfugiat}, {name=cd_AQA Raphaelquitester}, {name=cd_AQA Rembrandtanimi}, {name=cd_AQA Seuratest}]

I want to return me List only names without these part: 'name=' Like this:我想返回我只列出没有这些部分的名字:'name=' 像这样:

[{AQA Chief Officer}, {AQA Internal Accounts}, {AQA Interactions}, {AQA Legacy Planner}, {AQA Principal Facilitator}, {AQA Regional Program}, {AQA Cassattatque}, {AQA Kandinskyfugiat}, {AQA Raphaelquitester}, {AQA Rembrandtanimi}, {AQA Seuratest}]

Is it possible not to use a substring?是否可以不使用子字符串?

Thanks谢谢

You can use a map from stream to perform this task, it should look like something like this in case your Map has exactly one value您可以使用来自流的地图来执行此任务,如果您的Map只有一个值,它应该看起来像这样

getAllListsExcept().stream().map(hmap->hmap.values().iterator().next())
.collect(Collectors.toList());

You can get the values from Map and use flatMap您可以从Map获取值并使用flatMap

List<Object> result = getAllListsExcept().stream()
                                         .map(Map::values)
                                         .flatMap(Collection::stream)
                                         .collect(Collectors.toList());

Is it possible not to use a substring?是否可以不使用子字符串?

Yes, you don't have to use a substring solution.是的,您不必使用子字符串解决方案。 In fact, using a substring solution would not be the best.事实上,使用子串解决方案并不是最好的。 You can use a stream .您可以使用stream

        List<Map<String, Object>> list = List.of(
                Map.of("name", "AQA Chief Officer"),
                Map.of("name", "AQA Internal Accounts"),
                Map.of("name", "AQA Legacy Planner"),
                Map.of("name",
                        "AQA Principal Facilitator"));

        List<String> result = list.stream()
                .flatMap(map -> map.values().stream())
                .map(Object::toString)
                .collect(Collectors.toList());

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

It prints the following.它打印以下内容。

AQA Chief Officer AQA 首席官
AQA Internal Accounts AQA内部账户
AQA Legacy Planner AQA 遗产规划师
AQA Principal Facilitator AQA首席协调员

如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]> - How to convert List<String[]> to List<Object> using modelmapper or stream().map()?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]> - How to convert List<String[]> to List<Object> using modelmapper or stream().map()? 用于 Map 的 Java 8 流过滤器<String, List<Object> &gt; - Java 8 stream filter for Map<String, List<Object>> 如何获取地图<String, List<Object> &gt; 来自 Java 8 中的流 - How get a Map<String, List<Object>> from a Stream in Java 8 转换地图 <Integer, List<Object> &gt;到地图 <Integer, Map<String, Map<LocalDate, Integer> &gt;&gt;使用Java流API - Convert Map<Integer, List<Object>> to Map<Integer, Map<String, Map<LocalDate, Integer>>> using Java stream API Java 8流映射 <String, List<String> &gt;每个键的值总和 - Java 8 stream Map<String, List<String>> sum of values for each key Java 8 流:如何转换地图<String, List<Integer> &gt; 到地图<Integer, List<String> &gt; 使用 groupingBy(.) - Java 8 stream: how to Convert Map<String, List<Integer>> to Map<Integer, List<String>> using groupingBy(.) 使用流将Java <Object>收集到Java 8中的Map <String,List <Object >> - Collect List<Object> to Map<String, List<Object>> in Java 8 using stream 如何转换列表<anyclassobject>列出<map<string, string> &gt; 在 java 8 中使用 Stream? </map<string,></anyclassobject> - How to convert List<AnyClassObject> to List<Map<String, String>> using Stream in java 8? 使用Java Stream将List和String列表转换为Map - Converting List of List and String to Map with Java Stream 合并 Map <string, list<string> Java 8 Stream</string,> - Merge Map<String, List<String> Java 8 Stream
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM