java []怎么转成map
时间: 2023-11-16 21:04:46 浏览: 22
将一个 Java 数组转换成 Map,需要使用 Java 8 的 Stream API。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String[] array = {"a", "b", "c", "d"};
Map<Integer, String> map = Arrays.stream(array)
.collect(Collectors.toMap(
// Key 是数组下标,Value 是数组元素
index -> Arrays.asList(array).indexOf(index),
index -> index
));
System.out.println(map);
}
}
```
这个程序将一个字符串数组转换为一个 Map,其中 Key 是数组下标,Value 是数组元素。在这个例子中,Map 的输出应该是 `{0=a, 1=b, 2=c, 3=d}`。
相关问题
是使用java转成map
好的,以下是使用Java将该字符串转换为Map的代码:
```java
String str = "{isOccupy=Y, ip=127.0.0.1, channel=B, sendSmsTime=, userId=sysadmin, nowTime=2023-05-30 22:22:50, noSignedInNum=1, signNum=1, isSendSms=N, phone=12111111117, speakNum=0, name=asdf, isSpeak=0, nameNum=1, id=1141, lang=zh, remark1=, attenDance=, seq=101}";
// 去掉大括号,然后按照逗号和空格分割
String[] split = str.substring(1, str.length() - 1).split(",\\s+");
// 将分割后的键值对放入map中
Map<String, String> map = new HashMap<>();
for (String s : split) {
String[] pair = s.split("=");
map.put(pair[0], pair[1]);
}
```
以上代码中,首先去掉大括号,然后按照逗号和空格进行分割。接着,将分割后的键值对放入Map中。最终得到的Map就是转换后的结果。
希望该代码能够帮助到你,如有疑问,请随时提出。
Java Object转成Map
可以使用Java的反射机制,将一个Java对象转换为Map。具体实现方法如下:
```
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
public class ObjectToMapUtil {
public static Map<String, Object> convertObjectToMap(Object obj) {
Map<String, Object> map = new HashMap<>();
try {
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue = field.get(obj);
map.put(fieldName, fieldValue);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return map;
}
}
```
上述代码中,`convertObjectToMap` 方法接收一个Java对象,然后使用反射获取该对象的所有属性,并将属性名和属性值存储到一个Map中,最后返回该Map。注意,该方法中使用了`setAccessible(true)`方法,用于设置可以访问私有属性。