相关疑难解决方法(0)

61
推荐指数
4
解决办法
2万
查看次数

Java:String:equalsIgnoreCase vs将所有内容切换为大写/小写

我注意到有几种方法可以比较Java中的字符串.

我很久以前习惯使用equalsIgnoreCase以避免出现区分大小写的字符串问题.

另一方面,其他人喜欢以大写或小写的方式传递所有内容.

从我的立场(即使技术上我坐着),我看不出真正的区别.

有人知道一种做法是否优于另一种做法?如果是这样,为什么?

java string string-comparison

25
推荐指数
2
解决办法
5万
查看次数

小写所有HashMap键

我遇到了一个场景,我想要小写HashMap的所有键(不要问为什么,我只需要这样做).HashMap有数百万条目.

起初,我以为我只是创建一个新的Map,迭代要小写的地图条目,并添加相应的值.这个任务应该每天只运行一次或类似的东西,所以我想我可以裸露这个.

Map<String, Long> lowerCaseMap = new HashMap<>(myMap.size());
for (Map.Entry<String, Long> entry : myMap.entrySet()) {
   lowerCaseMap.put(entry.getKey().toLowerCase(), entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我的服务器在这一次过载时,我正要复制Map时,会导致一些OutOfMemory错误.

现在我的问题是,如何以最小的内存占用来完成这项任务?

在小写后删除每个键 - 添加到新Map帮助?

我可以利用java8流来加快速度吗?(例如这样的事情)

Map<String, Long> lowerCaseMap = myMap.entrySet().parallelStream().collect(Collectors.toMap(entry -> entry.getKey().toLowerCase(), Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)

更新 似乎它是一个Collections.unmodifiableMap所以我没有选择

在小写之后移除每个键 - 添加到新地图

java hashmap java-8 java-stream

15
推荐指数
1
解决办法
8942
查看次数

在hashmap中将字符串与keyvalue进行比较时忽略大小写

我试图检查我的hashmap键集是否包含字符串'buffSB.toString()'.但我想比较忽略的情况(上部或下部).

static StringBuilder buffSB = new StringBuilder(); 

buffSB.append(alphabet);

Map<String, String> pref =  new Datamatch().main();  // Getting the Hashmap from other class

if(pref.containsKey(buffSB.toString()))             //This is where I need to ignore case while searching string in the map key set 
  { 
      String val = pref.get(buffSB.toString());
  }
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!!!

java hashmap ignore-case

6
推荐指数
1
解决办法
1518
查看次数

不区分大小写的Map Key Java

Map<String, Object>在其中需要String键不区分大小写

当前,我将String对象包装在Wrapper类中,该类CaseInsensitiveString的代码如下所示:

    /**
    * A string wrapper that makes .equals a caseInsensitive match
    * <p>
    *     a collection that wraps a String mapping in CaseInsensitiveStrings will still accept a String but will now
    *     return a caseInsensitive match rather than a caseSensitive one
    * </p>
    */
public class CaseInsensitiveString {
    String str;

    private CaseInsensitiveString(String str) {
        this.str = str;
    }

    public static CaseInsensitiveString wrap(String str) {
        return new CaseInsensitiveString(str);
    }


    @Override
    public boolean …
Run Code Online (Sandbox Code Playgroud)

java string hashmap case-insensitive

1
推荐指数
1
解决办法
2234
查看次数