java基础面试题:请高手前来帮忙解答 20
如题:List<String>list=newArrayList<String>();list.add("abc");以上代码很容易理解没什么问题,关键是如何在该集合中添...
如题:List<String> list = new ArrayList<String>();
list.add("abc");
以上代码很容易理解没什么问题,关键是如何在该集合中添加一个Integer类型的数据:list.add(50) ?
直接添加肯定是不行的,编译时肯定要报错,那怎么能添加进去呢?
而且还要保证我们取出来时数据类型还是Integer而不是变成String类型的??
加进去啦
List list1 = list;
list1.add(50);
for (Object object : list) {
System.out.println(object);
}
还有一种是利用反射
/*Method m = list.getClass().getMethod("add", Object.class);
m.invoke(list, 50);
for (Object s : list) {
System.out.println(s);
}*/ 展开
list.add("abc");
以上代码很容易理解没什么问题,关键是如何在该集合中添加一个Integer类型的数据:list.add(50) ?
直接添加肯定是不行的,编译时肯定要报错,那怎么能添加进去呢?
而且还要保证我们取出来时数据类型还是Integer而不是变成String类型的??
加进去啦
List list1 = list;
list1.add(50);
for (Object object : list) {
System.out.println(object);
}
还有一种是利用反射
/*Method m = list.getClass().getMethod("add", Object.class);
m.invoke(list, 50);
for (Object s : list) {
System.out.println(s);
}*/ 展开
展开全部
1.有人说去掉泛型,这是一个很烂的习惯,完全可以用
List<Object> list = new ArrayList<Object>();来达到无泛型的效果
2.去掉泛型或者用List<Object>还是有问题,因为你取数据的时候取到的都是Object,需要转换为Integer或者String. 问题是:你知道哪个元素要转成Integer,哪个元素又要转成String??
3.你的这个设计要求就是有问题的,List这个对象的设计就不可能满足你的要求。你就不该采用一个List来设计:
(1).如果你有一批String和一批Integer,那么请建立两个List:List<String>和List<Integer>
(2).如果你只有几个String和几个Integer,数目是固定的,你可以自己建一个对象来装这个结果
class myobj{
Integer i;
String s;
//其他对象
}
当然,如果你这个题目只是玩花哨,只在List<String>里面装Integer,那你可以使用String.valueOf 和Integer.parseInt
List<Object> list = new ArrayList<Object>();来达到无泛型的效果
2.去掉泛型或者用List<Object>还是有问题,因为你取数据的时候取到的都是Object,需要转换为Integer或者String. 问题是:你知道哪个元素要转成Integer,哪个元素又要转成String??
3.你的这个设计要求就是有问题的,List这个对象的设计就不可能满足你的要求。你就不该采用一个List来设计:
(1).如果你有一批String和一批Integer,那么请建立两个List:List<String>和List<Integer>
(2).如果你只有几个String和几个Integer,数目是固定的,你可以自己建一个对象来装这个结果
class myobj{
Integer i;
String s;
//其他对象
}
当然,如果你这个题目只是玩花哨,只在List<String>里面装Integer,那你可以使用String.valueOf 和Integer.parseInt
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你设定了泛型String 只能存String格式
list.add("50")
提出来Integer.parseInt(s)转换吧。
你的补充问题,也是object格式,不是int 照样要转
list.add("50")
提出来Integer.parseInt(s)转换吧。
你的补充问题,也是object格式,不是int 照样要转
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将List的泛型改成Object 但是每次取出数据的话都得强制转换的说,
而且 每次只能用Object的子类强转 类似 的有Integer String Double Long Charset 这样
而且 每次只能用Object的子类强转 类似 的有Integer String Double Long Charset 这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加时用String.valueOf(50),取出时也要转换的,用Integer.parseOf(list[ x ]),x为50用所在的数组下标,纯手机手打,楼主给分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询