题目
有一个List<Object[]>,里面的元素分别是[1,“a”],[2,“b”],[1,“c”],[2,“d”]…,请写一个函数将其转换为一个Map<Integer,String>,以List的Object[]第一个元素为关键字,将同关键字的字符组装在一起,以逗号间隔开。例如:转化结果为{1:“a,c”},{2,“b,d”}。
代码示例
import java.util.*;/*** @Author zhanglifang* @create 2020-07-10 18:41*/
public class listToMap {public static void main(String[] args) {Object[] o1 = new Object[2];o1[0] = 1;o1[1] = "a";Object[] o2 = new Object[2];o2[0] = 2;o2[1] = "b";Object[] o3 = new Object[2];o3[0] = 1;o3[1] = "c";Object[] o4 = new Object[2];o4[0] = 2;o4[1] = "d";List<Object[]> list = new ArrayList<>();list.add(o1);list.add(o2);list.add(o3);list.add(o4);listToMap(list);}public static void listToMap(List<Object[]> list){Map<Integer, String> map = new HashMap<>();for (Object[] item : list) {Object key = item[0];Object value = item[1];if (!map.containsKey(key)){map.put((Integer)key, (String)value);}else {map.put((Integer)key, map.get(key) + "," +value);}}System.out.println(map);}
}
代码执行结果
{1=a,c, 2=b,d}