clwn.net
当前位置:首页 >> jAvA 泛型面试题 >>

jAvA 泛型面试题

简单的说就是数据类型被指定为一个参数,如一个列表声明为list<string>,那么这个list里就只能存放string,拿出来的对象直接就是string类型,不用转型.举个最简单的例子,有一个list,里面存放的全是string,你现在要遍历这个list 不用泛型:

java中的泛型实际让使用者生产类时就指定存储这个集合或者类存储什么格式的数据.如:List<String> list= new ArrayList<String>();//说明这个集合中只能存储String对象 List<User> uList= new ArrayList<User>();//只能存储User对象.

//方法中声明泛型 static <E> E test6(E e){ return e; } static void test5(Holder<? super String> h){//声明的类型是String或者它的父类型 //类型的下边界 可以放入String类型 h.setData("fff"); Object o=h.getData(); } static void test4(Holder<? extends

package cn.zgn.test ; import java.util.ArrayList; import java.util.List; public class Test2{ public static void main(String[] args) { List<List<String>> root = new ArrayList<List<String>>(); List<String> child1 = new ArrayList<String>(); child1.add("李

void test(List list); 这种方式,是在方法前先定义了一个类型T,T继承自A,List list,list中的元素必须是T类型的,也就是说,list中的元素类型要一样.void test(List extends A> list); 这种方式,是指list中只要放入A的子类型的就行了,但是一个非final类的子类是可以有很多个的,所以用这种方式时,list中的元素类型是可以不相同的,只要它们都是A的子类型就行了.

泛型在运行时有个概念叫类型擦除,也就是说泛型只能在编译期提供类型检查.所以函数调用时传入类型信息是不被允许的.但是在函数定义时, 可以控制类型信息:public <T> void getList(T t) { List<T> l = new ArrayList<>();}这样可以提供某种程度的类型限制,内部list的类型与参数是同样类型. 但是这是在编译期间的事.

语法错误啊汗if(e.next().equals(new Bread(1, "荷叶", "小", "馒头")));上面这个你直接就是一个完整的if了因为+了;然后你在加入{ e.remove(); }这是独立的一个语句也就是只要有下一个就删除了和你的if判断没关系而且不知道你有没有重写Bread类中的equals方法如果没有你的判断可能会出错..汗..哪有人new一个Object出来和另一个Object对比的啊..除非你重写了equals方法..

wulawula 望采纳

要写一个比较器class c implements Comparator{ public int compare(Set<long> o1, Set<long> o2) { return 0;//比较大小,o1>o2返回正数,相同返回0,否则负数 }}写完之后改成Map<String, Set<Long>> map = new HashMap<String, Set<Long>>(new c());望采纳

this.c=c; this.p=p;return c.toString()+p.toString();Poker<Color,Piont>p=new Poker<Color,Piont>(c,p);p.gets()

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com