pattern.put
时间: 2023-10-08 12:06:36 浏览: 44
pattern.put() 是指在 Java 中使用 HashMap 对象进行键值对的插入操作。
HashMap 是一种散列表实现的数据结构,它允许使用键值对的方式存储和获取数据。put() 方法用于将指定的键和值插入到 HashMap 中。它接受两个参数,第一个参数是键,第二个参数是对应的值。示例代码如下:
```java
HashMap<String, Integer> pattern = new HashMap<>();
pattern.put("key1", 1);
pattern.put("key2", 2);
```
上述代码将键值对 "key1" 和 1 以及 "key2" 和 2 插入到了 pattern 这个 HashMap 对象中。通过 put() 方法插入的键值对可以通过键来获取对应的值。
注意,如果插入的键已经存在于 HashMap 中,那么新的值将会覆盖原来的值。如果需要判断是否已存在键,可以使用 containsKey() 方法来进行判断。
相关问题
Pattern.compile匹配文字过多时,造成卡顿
Pattern.compile()在匹配大量文字时可能会造成卡顿的原因是因为它需要将待匹配的正则表达式编译成一个Pattern对象,这个过程可能比较耗时。当进行大量的匹配操作时,频繁地编译正则表达式会导致性能下降。
为了解决这个问题,你可以考虑将Pattern对象缓存起来,在需要匹配的时候直接使用已经编译好的Pattern对象,而不是每次都编译一次。可以使用一个Map来存储不同正则表达式对应的Pattern对象,例如:
```java
Map<String, Pattern> patternCache = new HashMap<>();
public Pattern getPattern(String regex) {
Pattern pattern = patternCache.get(regex);
if (pattern == null) {
pattern = Pattern.compile(regex);
patternCache.put(regex, pattern);
}
return pattern;
}
```
然后在匹配文字时,使用`getPattern()`方法获取对应的Pattern对象,再进行匹配操作。
lambda优化 private static void getUrl(String baseUrl) { Map<String,Boolean> oldMap=new LinkedHashMap<>(); String oldLinkHost=""; Pattern p=Pattern.compile("(https?://)?[/\s]*"); Matcher m=p.matcher(baseUrl); if (m.find()){ oldLinkHost=m.group(); } oldMap.put(baseUrl,false); crawlLinks(oldLinkHost,oldMap); for (Map.Entry<String,Boolean> mapping :oldMap.entrySet()){ System.out.println("链接:" + mapping.getKey()); } }
在这段代码中,有一些可以进行lambda优化的地方,例如:
1. 对于Map的遍历,可以使用forEach方法来替代for循环,代码如下:
```
oldMap.forEach((key, value) -> {
System.out.println("链接:" + key);
});
```
2. 对于正则表达式的编译,可以使用lambda表达式来避免创建多个Pattern对象,代码如下:
```
Pattern.compile("(https?://)?[/\\s]*").matcher(baseUrl)
```
这里使用了Matcher的流式API来调用compile方法,避免了创建Pattern对象。
3. 对于Map的初始化,可以使用Java 9中新增的ofEntries方法来替代手动添加键值对,代码如下:
```
Map<String, Boolean> oldMap = Map.ofEntries(
Map.entry(baseUrl, false)
);
```
这里使用了Map.entry方法来创建键值对,然后使用ofEntries方法将它们组合到一起。
综上所述,可以对代码进行如下优化:
```
private static void getUrl(String baseUrl) {
String oldLinkHost = Pattern.compile("(https?://)?[/\\s]*")
.matcher(baseUrl)
.find()
? Pattern.compile("(https?://)?[/\\s]*")
.matcher(baseUrl)
.group()
: "";
Map<String, Boolean> oldMap = Map.ofEntries(
Map.entry(baseUrl, false)
);
crawlLinks(oldLinkHost, oldMap);
oldMap.forEach((key, value) -> {
System.out.println("链接:" + key);
});
}
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)