- 继承实现接口的方法的时候,要是泛型接口直接指定类型就无须后面的强制转换,this直接就代表该类型,参数也就是该类型
- 设置泛型对象的上限使用extends,表示参数类型只能是该类型或该类型的子类(? <= Number ):
1public
static
void
up(List<?
extends
Number> l){
//方法的具体实现 }
- 设置泛型对象的下限使用super,表示参数类型只能是该类型或该类型的父类( ? >= Number):
1public
static
void
down(List<?
super
Number> l){
//方法的具体实现 }
- 泛型的擦除
12
List<Integer> l1 =
new
ArrayList<Integer>();
List l2 = l1;
- Map不能直接遍历for循环,因为没有实现接口
- List的通配符Lsit<?>一般作为方法的参数没表示还不知道什么类型,可以接收所有的List
- Map中如果添加的key相同则覆盖前面的
- Collections:集合的工具类: 里面包含了排序,查找,交换元素,获得同步集合对象的方法; 详细参见API;
- Arrays:
1public
static
<T>List<T> asList(T ... t){}
返回定长的List集合,t数组元素组成List集合元素; 返回的List集合长度不能改变,否则,出错;
12
3
4
5
6
7
8
9
10
11
12
13
int
[] arr = {
1
,
2
,
3
};
List<Integer> l1 = Arrays.asList(arr);
//ERROR
List<
int
[]> l2 = Arrays.asList(arr);
//YES
Integer[] arr1 = arr;
//ERROR
Integer[] arr1 = {
1
,
2
,
3
};
List<Integer> l3 = Arrays.asList(arr1);
List <----> 数组
List-->数组: Collection接口里的 Object[] toArray();
List l =
new
ArrayList();
l.add(
1
);
l.add(
"a"
);
l.add(
false
);
Object[] arr= l.toArray();
- 泛型: 简单使用(必须掌握):
12
3
List list =
new
ArrayList();
String ele = (String)set.get(
0
);
List<String> list =
new
ArrayList<String>();
表示该Set集合只能装String类型元素;
1String ele = set.get(
0
);
在底层依然是:
1String ele = (String)set.get(
0
);
12
3
4
5
6
7
8
9
Map<String,Date> map =
new
HashMap<String,Date>();
map.put(
"A"
,
new
Date());
Set<Map.Entry<String,Date>> entrys = map.entrySet();
//取出Map里所有Entry对象
Iterator<Map.Entry<String,Date>> it = entrys.iterator();
//使用迭代器
//迭代出每一个Entry对象
while
(it.hasNext()) {
Map.Entry<String,Date> entry = it.next();
//取出每个entry里的 key和 value
String key = entry.getKey();
Date value = entry.getValue(); }
//show(new HashMap<>());
- 泛型方法://泛型方法的声明占位符只能放在方法返回类型的前面;
1public
static
<T> List<T> asList(T ... t){ }
Arrays的静态方法把一些可变参数变为list对象
- 得到className权限定名类的字节码对象 Class的静态方法
1static
Class<?> forName(String className)
表示所有不确定的类型,可以接受所有的类型; 但是不能往里面添加元素
- List<>的上限下限不能同时使用
- 一般文件路径的分隔符使用“/”可以兼容多平台,“\\”一般只是支持windows
- 一般使用File文件类创建文件没有指定路径就是抽象路径也就是bin目录下面,默认创建在下面
Java基础学习笔记【08】泛型限定、泛型操作
时间: 2024-10-18 18:33:12
Java基础学习笔记【08】泛型限定、泛型操作的相关文章
JAVA基础学习笔记(2)
看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog //类名 { String name; //变量的声明 int age; String color; void bark() //方法的定义(返回值为空,不带参数) { System.out.println(
JAVA基础学习笔记(1)
今天第一天开始学JAVA,时间:2014年6月17日 学习内容:1.java环境的架设 2.JAVA基本数据类型 1.JAVA环境的架设 1.要先去下载JDK,下载地址 2.安装完成后,设置环境变量 1.1环境变量的设置 1.右键-我的电脑-属性-高级-环境变量-系统变量,找到PATH,在里面加入jdk里bin目录的地址 如:c:\java\bin; 2.新建-名为classpath,值为. 1.2测试JAVA是否配置正确 1.在cmd里面输入javac.
java基础学习笔记day01
java基础学习笔记day01 1.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件 2.java概述: java之父:詹姆斯·高斯林 JDK:java开发环境 jre:java运行环境 JVM:java虚拟机 java跨平台是因为,JVM能在不同的平台运行,JVM是跨平台的 JavaSE:标准版 JavaME:手机端,物联网 JavaEE:企业版,互联网项目 3.java语言特点: 简单性 解释性 面向对象 高性能 分
Java基础学习笔记
File 的高级获取功能 String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 示例 import java.io.File; class FileDemo9 { public static void main(String[] args) { //获取E:下所有目录或者文件名称 File file=new File("E:\\");//1.构建文件对象 String[] fileNames=file.list();//2.获取E
黑马程序员--java基础学习笔记5
黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编
[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行
本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装 | 2.编写第一个java程序HelloWorld | 3.编译执行HelloWorld
Java基础学习笔记十五 集合、迭代器、泛型
Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 集合中存储的元素必须是引用类型数据 集合继承关系图 ArrayList的继承关系: 查看ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口.Collec
[原创]java WEB学习笔记08:ServletResponse &; HttpServletResponse
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------
Java基础学习笔记二十八 管家婆综合项目
本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添加账务 编辑账务 删除账务 项目环境搭建 技术选型和jar包介绍 每个项目都要使用一些已经成熟的技术,它们通常是由一些专业组织或团队所提供的开源免费技术.在今后的学习过程中,我们会逐渐对这些专业组织有所了解.本项目中使用的技术如下: apache的commons组件: commons-dbutils
Java基础学习笔记(一)
程序员,程序猿,程序媛,码农 ——————————————————————————————————————————————————————— ——Java的应用领域 J2SE 主要用来开发桌面应用软件. J2ME 嵌入式开发,例如手机里的软件,掌上电脑软件等等. J2EE 属于网络编程,例如JSP等等,做网站用. ——参考资料 张孝祥 <Java就业培训> 林信良 <Java学习笔记> 机械工业 <Ja