6.2 泛型及高阶应用
2023-12-25 18:55:05
6.2 泛型及高阶应用
1. 初识泛型的应用
package com.imooc.pt;
import java.util.ArrayList;
public class ListSample {
/**
* 不使用泛型
*/
public void sample1(){
//ArrayList不使用泛型,不知道bookList的类型
ArrayList bookList = new ArrayList();
bookList.add("三国演义");
bookList.add("水浒传");
bookList.add(3.1415926f);
Object o1 = bookList.get(0);
String bookName1 = (String)o1;
System.out.println(bookName1.substring(0,1));
Object o2 = bookList.get(2);
String bookName2 = (String)o2;//o2不是字符串
System.out.println(bookName2.substring(0,1));//出错
}
/**
* 使用泛型
*/
public void sample2(){
//使用泛型限制bookList只能接受字符串类型的数据
ArrayList<String> bookList = new ArrayList();
bookList.add("三国演义");
bookList.add("水浒传");
//bookList.add(3.1415926f);
String bookName1 = bookList.get(0);
System.out.println(bookName1.substring(0,1));
Object o2 = bookList.get(2);
String bookName2 = (String)o2;
System.out.println(bookName2.substring(0,1));
}
public static void main(String[] args) {
ListSample listSample = new ListSample();
listSample.sample1();
}
}
2. 自定义泛型及其应用
1. 自定义泛型
package com.imooc.pt;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* 自定义泛型
* @param <E>
*/
public class CollectionUtils<E> {
private List<E> data = new ArrayList();
/**
* 添加元素
* @param element
*/
public void add(E element){
data.add(element);
}
/**
* 随机获取List中的元素
* @return
*/
public E randomSelect(){
int idx = new Random().nextInt(data.size());
E ret = data.get(idx);
return ret;
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
CollectionUtils<String> utils = new CollectionUtils();
utils.add("张三");
utils.add("李四");
utils.add("王五");
utils.add("赵六");
String name = utils.randomSelect();
System.out.println(name);
System.out.println(utils.randomSelect());
System.out.println(utils.randomSelect());
System.out.println(utils.randomSelect());
System.out.println(utils.randomSelect());
System.out.println(utils.randomSelect());
System.out.println(utils.randomSelect());
}
}
2. 泛型方法的应用
3. 泛型通配符
文章来源:https://blog.csdn.net/qq_44289784/article/details/135200224
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!