簡體   English   中英

如何將列表對象中的字符串與另一個普通字符串進行比較

[英]How to compare a string from a list object with a another normal string

我有一個List對象,我想檢查所有重復的名稱,同時保存到下面的db中是我的代碼,但是它不起作用:

List<ChartOfAccount> checkDuplicateDetails = accountTypeRepository.checkDuplicateDetails();
    for (ChartOfAccount chartOfAccDuplicate: checkDuplicateDetails) {   
      if(chartOfAccDuplicate.getAccountName().equals("hello123")){
        System.out.println("found duplicate");
      }else {               
        chartOfAccRepository.save(chartOfAccount);
      }
    }

有兩種可能性

  1. 您的chartOfAccDuplicate.getAccountName()方法未返回字符串 litereal

  2. 或者您必須使用chartOfAccDuplicate.getAccountName()。 equalsIgnoreCase (“ hello123”)

如何創建列表<object>帶有字段字符串和 Map <string, set<string> &gt; 從另一個列表<object2><div id="text_translate"><p> Class Object2具有標准的 getter 並具有String字段folder 、 file和version 。 它被命名為SourceInfo</p><p> List&lt;SourceInfo&gt; source包含上面提到的三個字段。</p><p> 我的目標是從List&lt;SourceInfo&gt;創建一個List&lt;Info&gt; &gt; 。</p><p> 新List的 class 為Info ,如下圖所示。</p><pre> public class Info { private final String folder; private final Map&lt;String, Set&lt;String&gt;&gt; file; public static Builder builder() { return new Builder(); } public static Builder builder(Info info) { return new Builder(info); } private Info(Builder builder) { this.folder = builder.folder; this.file = builder.file; } public String getFolder() { return folder; } public Map&lt;String, Set&lt;String&gt;&gt; getFile() { return file; } // autogenerated toString, hashCode, and equals public static class Builder { private String folder; private Map&lt;String, Set&lt;String&gt;&gt; file; private Builder() {} private Builder(Info info) { this.folder = info.folder; this.file = info.file; } public Builder with(Consumer&lt;Builder&gt; consumer) { consumer.accept(this); return this; } public Builder withFolder(String folder) { this.folder = folder; return this; } public Builder withFile(Map&lt;String, Set&lt;String&gt;&gt; file) { this.file = file; return this; } public Info build() { return new Info(this); } }</pre><p> 到目前為止,我嘗試的是在構建器模式中創建一個集合。</p><pre> List&lt;SourceInfo&gt; source; // error: gc overhead limit exceeded List&lt;Info&gt; infoList = source.stream().map(e -&gt; Info.builder().withFolder(e.getFolder()).withFile(source.stream().collect(Collectors.groupingBy(SourceInfo::getKey, Collectors.mapping(SourceInfo::getVersion, Collectors.toSet())))).build()).collect(Collectors.toList()); Map&lt;String, Set&lt;String&gt;&gt; map = source.stream().collect(Collectors.groupingBy(SourceInfo::getKey, Collectors.mapping(SourceInfo::getVersion, Collectors.toSet()))); List&lt;Info&gt; info = source.stream().map(e -&gt; Info.builder().withFolder(e.getFolder()).withFile(map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))).build()).collect(Collectors.toList());</pre><p> 所需的 output。 以下語法可能已關閉。</p><pre> // [String, Map&lt;String, Set&lt;String&gt;&gt;] Info [folder, [key=file [value=version]]]...</pre><p> 我是 Java 的新手,不勝感激。</p><p> 我想了解如何使用 java8 和 for 循環來做到這一點。</p><p> 謝謝你。</p></div></object2></string,></object>

[英]How to create a List<Object> with fields String and Map<String, Set<String>> from another List<Object2>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何創建列表<object>帶有字段字符串和 Map <string, set<string> &gt; 從另一個列表<object2><div id="text_translate"><p> Class Object2具有標准的 getter 並具有String字段folder 、 file和version 。 它被命名為SourceInfo</p><p> List&lt;SourceInfo&gt; source包含上面提到的三個字段。</p><p> 我的目標是從List&lt;SourceInfo&gt;創建一個List&lt;Info&gt; &gt; 。</p><p> 新List的 class 為Info ,如下圖所示。</p><pre> public class Info { private final String folder; private final Map&lt;String, Set&lt;String&gt;&gt; file; public static Builder builder() { return new Builder(); } public static Builder builder(Info info) { return new Builder(info); } private Info(Builder builder) { this.folder = builder.folder; this.file = builder.file; } public String getFolder() { return folder; } public Map&lt;String, Set&lt;String&gt;&gt; getFile() { return file; } // autogenerated toString, hashCode, and equals public static class Builder { private String folder; private Map&lt;String, Set&lt;String&gt;&gt; file; private Builder() {} private Builder(Info info) { this.folder = info.folder; this.file = info.file; } public Builder with(Consumer&lt;Builder&gt; consumer) { consumer.accept(this); return this; } public Builder withFolder(String folder) { this.folder = folder; return this; } public Builder withFile(Map&lt;String, Set&lt;String&gt;&gt; file) { this.file = file; return this; } public Info build() { return new Info(this); } }</pre><p> 到目前為止,我嘗試的是在構建器模式中創建一個集合。</p><pre> List&lt;SourceInfo&gt; source; // error: gc overhead limit exceeded List&lt;Info&gt; infoList = source.stream().map(e -&gt; Info.builder().withFolder(e.getFolder()).withFile(source.stream().collect(Collectors.groupingBy(SourceInfo::getKey, Collectors.mapping(SourceInfo::getVersion, Collectors.toSet())))).build()).collect(Collectors.toList()); Map&lt;String, Set&lt;String&gt;&gt; map = source.stream().collect(Collectors.groupingBy(SourceInfo::getKey, Collectors.mapping(SourceInfo::getVersion, Collectors.toSet()))); List&lt;Info&gt; info = source.stream().map(e -&gt; Info.builder().withFolder(e.getFolder()).withFile(map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))).build()).collect(Collectors.toList());</pre><p> 所需的 output。 以下語法可能已關閉。</p><pre> // [String, Map&lt;String, Set&lt;String&gt;&gt;] Info [folder, [key=file [value=version]]]...</pre><p> 我是 Java 的新手,不勝感激。</p><p> 我想了解如何使用 java8 和 for 循環來做到這一點。</p><p> 謝謝你。</p></div></object2></string,></object> 如何比較(包含)Object [] []到字符串並將其值添加到另一個Object [] [] 如何將方法返回的字符串與主方法中的另一個字符串進行比較? 如何將值從 Excel 單元格格式化的字符串變量與普通字符串變量進行比較? 比較列表中字符串的日期 如何從HashMap獲取列表 <String,List<String> &gt;到另一個列表 如何比較包含字符串的對象? 是否可以將數組字符串與普通字符串進行比較? 如何比較兩個HashMap <String, List<String> &gt; 對象的字符串列表
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM