public class WorkTermDayUtils { static Map<Integer, Integer> map; public Map<Integer,Integer> getWorkTermDays() { map.put(1, 3); map.put(2, 13); map.put(3, 29); map.put(4, 59); map.put(5, 179); map.put(6, 364); map.put(7, 729); return map; } 这段代码工具类调用没数据
时间: 2024-02-24 19:55:09 浏览: 15
这段代码的作用是定义一个名为 `WorkTermDayUtils` 的工具类,其中包含一个静态的 `Map<Integer, Integer>` 类型的变量 `map`。在 `getWorkTermDays()` 方法中,将一些键值对添加到 `map` 中并返回 `map`。但是,由于 `map` 没有被初始化,所以在其他类中调用 `getWorkTermDays()` 方法时,将会得到一个空指针异常。因此,必须在该工具类中初始化 `map` 变量。可以在类的静态块中初始化它,如下所示:
```
public class WorkTermDayUtils {
static Map<Integer, Integer> map;
static {
map = new HashMap<>();
}
public Map<Integer, Integer> getWorkTermDays() {
map.put(1, 3);
map.put(2, 13);
map.put(3, 29);
map.put(4, 59);
map.put(5, 179);
map.put(6, 364);
map.put(7, 729);
return map;
}
}
```
这样,在其他类中调用 `getWorkTermDays()` 方法时,将不会得到空指针异常。
相关问题
List<Map<String, List<Integer>>>字符串转数组 java实现jdk8
要将字符串转换为List<Map<String, List<Integer>>>类型的数组,你可以按照以下步骤进行实现:
1. 首先,将字符串解析为JSON格式对象。你可以使用JSON库(如Jackson或Gson)来完成这一步骤。假设你已经将字符串解析为一个名为"jsonObject"的JSON对象。
2. 接下来,创建一个List<Map<String, List<Integer>>>类型的数组。我们可以称之为"result"。
3. 遍历"jsonObject"中的每个元素。对于每个元素,执行以下步骤:
- 创建一个新的Map<String, List<Integer>>类型的对象,我们可以称之为"map"。
- 遍历当前元素中的每个键值对。对于每个键值对,执行以下步骤:
- 将键转换为String类型,我们可以称之为"key"。
- 将值转换为List<Integer>类型,我们可以称之为"value"。
- 将"key"和"value"添加到"map"中。
- 将"map"添加到"result"数组中。
4. 当遍历完所有元素后,"result"数组将包含所有转换后的数据。
以下是一个示例代码:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String jsonString = "your_json_string";
ObjectMapper objectMapper = new ObjectMapper();
try {
// Step 1: Parse the jsonString to a JSON object
Object jsonObject = objectMapper.readValue(jsonString, Object.class);
// Step 2: Create a List<Map<String, List<Integer>>> array
List<Map<String, List<Integer>>> result = new ArrayList<>();
// Step 3: Iterate over each element in the jsonObject
for (Map.Entry<String, Object> entry : ((Map<String, Object>) jsonObject).entrySet()) {
Map<String, List<Integer>> map = new HashMap<>();
// Step 3.1: Iterate over each key-value pair in the current element
for (Map.Entry<String, Object> innerEntry : ((Map<String, Object>) entry.getValue()).entrySet()) {
String key = innerEntry.getKey();
List<Integer> value = (List<Integer>) innerEntry.getValue();
// Step 3.2: Add the key-value pair to the map
map.put(key, value);
}
// Step 3.3: Add the map to the result array
result.add(map);
}
// Step 4: The result array now contains the converted data
for (Map<String, List<Integer>> map : result) {
System.out.println(map);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
Map <Integer, Integer>keyMap 根据key value 分成2个list[int ]
可以使用Java的Stream API来根据Map的键值对分成两个List<Integer>。
```java
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
Map<Integer, Integer> keyMap = new HashMap<>();
keyMap.put(1, 10);
keyMap.put(2, 20);
keyMap.put(3, 30);
keyMap.put(4, 40);
List<Integer> keys = new ArrayList<>();
List<Integer> values = new ArrayList<>();
keyMap.forEach((key, value) -> {
keys.add(key);
values.add(value);
});
System.out.println("Keys: " + keys);
System.out.println("Values: " + values);
}
}
```
运行以上代码将输出:
```
Keys: [1, 2, 3, 4]
Values: [10, 20, 30, 40]
```
在这个例子中,我们遍历了`keyMap`的键值对,并将键存储在`keys`列表中,将值存储在`values`列表中。最后,我们打印出这两个列表的内容。你可以将这个代码片段集成到你的项目中,并根据需要进行修改。