java能不能这样?List<Map<String, Object>>[]
java数组和集合能不能共同存在?打个比方:new一个数组的时候是inta[]=newint[5];那我可不可以new一个数组里面的每一个元素都是一个List<map<>...
java数组和集合能不能共同存在?打个比方: new一个数组的时候是 int a[] = new int[5]; 那我可不可以new一个数组里面的每一个元素都是一个List<map<>>?
展开
展开全部
可以的 ,直接给实例:
public static void main(String[] args) {
List<Map<String, String>>[] lists = new ArrayList[4];
Map<String, String> map = new HashMap<String, String>();
map.put("a", "1");
map.put("b", "2");
List<Map<String, String>> list = new ArrayList<Map<String,String>>();
list.add(map);
lists[0] = list;
System.out.println(lists[0]);
System.out.println("***********无敌分割线************");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("c", "1");
map2.put("d", "2");
List<Map<String, String>> list2 = new ArrayList<Map<String,String>>();
list2.add(map2);
lists[1] = list2;
System.out.println(lists[1]);
}
运行结果:
[{b=2, a=1}]
***********无敌分割线************
[{d=2, c=1}]
public static void main(String[] args) {
List<Map<String, String>>[] lists = new ArrayList[4];
Map<String, String> map = new HashMap<String, String>();
map.put("a", "1");
map.put("b", "2");
List<Map<String, String>> list = new ArrayList<Map<String,String>>();
list.add(map);
lists[0] = list;
System.out.println(lists[0]);
System.out.println("***********无敌分割线************");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("c", "1");
map2.put("d", "2");
List<Map<String, String>> list2 = new ArrayList<Map<String,String>>();
list2.add(map2);
lists[1] = list2;
System.out.println(lists[1]);
}
运行结果:
[{b=2, a=1}]
***********无敌分割线************
[{d=2, c=1}]
展开全部
这个是不行的吧,比如
List<Map<String, Object>>[] l = new ArrayList<Map<String, Object>>[5];
会编译出错,提示:Cannot create a generic array of ArrayList<Map<String,Object>>
我想原因大概是这样的,ArrayList底层是数组实现的,可以把它理解为可变长度的数组,你的需求就可以理解为一个二维数组,即new ArrayList<Map<String, Object>>[len][5],因为是List集合所以len的长度不确定,这样就不符合java中二维数组的定义规范了,二维数组第二个长度可以事先不声明,但是第一个必须声明.
以上都是我个人的推理,不一定正确,望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以
//新建一个对象数组
Object[] a = new Object[2];
//新建一个list集合
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
//新建一个map对象
Map<String, Object> map = new HashMap<String, Object>();
//往map里赋值
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
//将map装在list里
list.add(map);
//将list放在数组里
a[0] = list;
a[1] = list;
//循环打印数组
for(int i=0;i<a.length;i++){
List<Map<String, Object>> list2 = (List<Map<String, Object>>) a[i];
System.out.println(list2.get(0).get("1"));
System.out.println(list2.get(0).get("2"));
System.out.println(list2.get(0).get("3"));
}
//新建一个对象数组
Object[] a = new Object[2];
//新建一个list集合
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
//新建一个map对象
Map<String, Object> map = new HashMap<String, Object>();
//往map里赋值
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
//将map装在list里
list.add(map);
//将list放在数组里
a[0] = list;
a[1] = list;
//循环打印数组
for(int i=0;i<a.length;i++){
List<Map<String, Object>> list2 = (List<Map<String, Object>>) a[i];
System.out.println(list2.get(0).get("1"));
System.out.println(list2.get(0).get("2"));
System.out.println(list2.get(0).get("3"));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以啊。就算你是Map<String,List<Map<String,Map<String,List<Object>>>>>也是没问题的
追问
List> Lists[] = new ArrayList()[5]; 为什么这样报错?该怎么NEW?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-09-08 · 知道合伙人数码行家
关注
展开全部
可以的,List<T> 这个T其实就是Object类型。
更多追问追答
追问
List> Lists[] = new ArrayList()[5]; 为什么这样报错?该怎么NEW?
追答
List> Lists[] = new ArrayList>();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询