Java学习Day08——泛型

server/2024/12/17 19:27:10/

1.  泛型的理解和好处

1.1  使用传统方法的问题

1.  不能对加入到集合 ArrayList中的数据类型进行约束(不安全)

2.  遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响

 1.2  泛型的好处

1.  编译时,检查添加元素的类型,提高了安全性

2.  减少了类型转换的次数,提高效率[说明]
3.  不再提示编译警告

2.  泛型的语法 

2.1  泛型的声明

interface 接口<T>{} 和 class 类<K,V>{}

比如:List, ArrayList

说明:

1.  其中,T,K,V不代表值,而是表示类型。

2.  任2意字母都可以。常用T表示,是Type的缩写

2.2  泛型的实例化 

要在类名后面指定类型参数的值(类型)。如:

1.  List<String> strList = new ArrayList<String>();[举例说明]

2.  lterator<Customer> iterator  =  customers.iterator(); 

2.3  案例 

java">import java.util.ArrayList;public class Test01 {public static void main(String[] args) {//<E>:表示泛型.限制集合中所存的元素类型。 如果不使用默认Object.
//        ArrayList list=new ArrayList();
//        list.add(17);
//        list.add("hello");
//        list.add(new Object());
//        list.add(true);
//
//        Object o = list.get(0);
//        String o2 = list.get(1);ArrayList<Integer> list=new ArrayList<>();list.add(15);Integer integer = list.get(0);ArrayList<Student> list2=new ArrayList<>();list2.add(new Student(1,"张三1",15.5));list2.add(new Student(2,"张三2",125.5));list2.add(new Student(3,"张三3",125.5));list2.forEach(item-> System.out.println(item));}
}

2.4  泛型使用的注意事项和细节

1.  interface List<T>{} ,public class HashSet<E>{}.. 等等

说明:T,E只能是引用类型

看看下面语句是否正确?

List<Integer> list = new ArrayList<Integer>();//OKList<int> list2 = new ArrayList<int>();//错误
2.  在给泛型指定具体类型后,可以传入该类型或者其子类类型

3.  .泛型使用形式

List<Integer> list1 = new ArrayList<Integer>();

List<Integer> list2 = new ArrayList<>();[说明:]

4.  如果我们这样写 List list3 = new ArrayList();默认给它的 泛型是[<E>E就是 Object


http://www.ppmy.cn/server/150977.html

相关文章

如何使用 uni-app 构建直播应用程序?

使用uni-app构建直播应用程序涉及前端和后端的开发&#xff0c;以及音视频处理技术的选择。下面我将概述一个典型的直播应用架构&#xff0c;并详细说明如何在uni-app中实现关键功能。 直播应用架构 前端&#xff08;uni-app&#xff09;&#xff1a;负责用户界面展示、互动逻…

240004基于Jamva+ssm+maven+mysql的房屋租赁系统的设计与实现

基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化&#xff0c;包括新增了注册功能&#xff0c;房屋模糊查询功能&#xff0c;管理员和用户信息管理等功能&#xff0c;以及对网站界面进行了优…

Spring Security前置内容+关键内部类

目录 前置内容认证与授权配置和配置类 security内部的关键类UserDetailsUserUserDetailsService&#xff08;加载用户数据&#xff0c;提供用户信息&#xff09; 前置内容 认证与授权 认证即系统判断用户的身份是否合法&#xff0c;合法可继续访问&#xff0c;不合法则拒绝访…

vue2中echarts

如图示&#xff1a; 第一个&#xff1a; <div ref"charts" style"width:100%;height:99px;"></div> import * as echarts from echarts;mounted() {this.drawLine();},methods: {drawLine() {// 基于准备好的dom&#xff0c;初始化echarts实例…

代码随想录算法训练营第一天 | 数组理论基础,977.有序数组平方结果再排序

题目说明&#xff1a;数组本身有序&#xff0c;且元素值可通用负数&#xff08;注意不是复数&#xff09;&#xff0c;平方结果值还能以有序方式排列 标准想法就是在原数组基础上&#xff0c;把所有元素求平方结果值 再将这个有新结果值的数组&#xff0c;进行排序 生成平方…

操作系统(11)程序处理

前言 操作系统&#xff08;OS&#xff09;是管理计算机硬件与软件资源的计算机程序&#xff0c;它在计算机系统中扮演着至关重要的角色。 一、操作系统的作用 操作系统是直接运行在计算机上的系统软件&#xff0c;具有承上启下的作用。它向下控制硬件&#xff0c;向上支持软件的…

【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数

文章目录 一、转义字符1、什么是转义字符&#xff1f;2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例&#xff1a;生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM&#xff08;即时通讯&#xff09;系统源码部署是一个复杂但系统的过程&#xff0c;涉及多个组件和步骤。以下是一个详细的部署指南&#xff0c;旨在帮助开发者或系统管理员成功部署一个全开源的IM系统&#xff0c;如OpenIM。      IM即时通讯系统源码准备工作   …