JAVA-基础(集合 泛型)

JAVA-基础(集合 泛型)

1.什么是泛型?

可以在类或方法中预支地使用未知的类型。

2.泛型的好处?

将运行时期的ClassCastException,转移到了编译时期变成了编译失败。

避免了类型强转的麻烦。(集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。此时我存intger类型,转成string,就会发生了问题java.lang.ClassCastException。怎么来解决这个问题呢?JDK5之后,新增了泛型(Generic)语法,编译时期进行语法检查,只存储同一类型对象。

3.泛型的定义?

修饰符 class 类名<代表泛型的变量> {  }

在创建对象的时候确定泛型

例如,ArrayList<String> list = new ArrayList<String>();

4.含有泛型的方法?

修饰符 <代表泛型的变量> 返回值类型 方法名(参数){  }

5.含有泛型的接口?

修饰符 interface接口名<代表泛型的变量> {  }

6.泛型通配符?

泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。

1 public static void main(String[] args) {
2     Collection<Intger> list1 = new ArrayList<Integer>();
3     getElement(list1);
4     Collection<String> list2 = new ArrayList<String>();
5     getElement(list2);
6 }
7 public static void getElement(Collection<?> coll){}
8 //?代表可以接收任意类型

7.受限泛型?

之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置。但是在JAVA的泛型中可以指定一个泛型的上限和下限。

泛型的上限意义只能接收该类型及其子类 格式类型名称 <? extends 类 > 对象名称。

泛型的下限意义只能接收该类型及其父类型 格式类型名称 <? super 类 > 对象名称。

原文地址:https://www.cnblogs.com/fan123yh/p/10981389.html

时间: 2024-10-11 07:20:01

JAVA-基础(集合 泛型)的相关文章

Java基础——集合(三)——泛型、增强for、工具类

         接上篇,<Java基础--集合(二)--迭代器.Map集合> 六.泛型 (1)定义: 泛型是一种把明确类型的工作放在了创建对象或者调用方法时候才去明确的特殊的类型. (2)格式: <数据类型> ArrayList<String> aList=new ArrayList<String>(); <String> 即表示的是泛型 (3)好处:(掌握) A:解决了黄色警告线问题 B:把运行期间的转换异常给提前到了编译期间 C:优化了程序

Java基础——集合(二)——迭代器、Map集合

接上篇,<Java基础--集合(一)--集合体系和Collection> 四.迭代器的使用 使用步骤: 1.通过集合对象获取迭代器对象. 2.通过迭代器对象判断. 3.通过迭代器对象获取. 迭代器原理 由于多种集合的数据结构不同,所以存储方式不同,所以,取出方式也不同. 这个时候,我们就把判断和获取功能定义在了一个接口中,将来,遍历哪种集合的时候,只要该集合内部实现这个接口即可. 迭代器源码 public interface Iterator { publicabstract boolean

java基础之泛型用法

1.什么是泛型 泛型是java中保障类型安全的一种机制.它通过对变量类型的假设,实现变量类型的进行限制,从而在一定程度上保证程序编译时变量类型的安全.反之,如果没有泛型,这些假设则只存在于程序员的大脑中,这样会导致类型转换的异常在程序运行时才被发现. //不用泛型 List list1 = new ArrayList(); list1.add(1); Object o = list1.get(0); //返回Object类型对象 Integer i = (Integer) o; //需预先知道类

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

Java基础:泛型

Java的泛型是什么呢, 就是类型的参数化,这得类型包括方法参数和返回值,也就是原本该是确定类型的地方换成了变量,把类型的确定时间向后延迟了. 在之前,学过"重载"的概念,重载是什么呢,举例来说 public class Test{ // 处理整型数据 void receive(int i) { System.out.println("Received one int data"); System.out.println("i="+i); } /

Java基础巩固----泛型

注:参考书籍:Java语言程序设计.本篇文章为读书笔记,供大家参考学习使用   1.使用泛型的主要优点是能够在编译时而不是在运行时检查出错误,提高了代码的安全性和可读性,同时也提高了代码的复用性. 1.1如何理解泛型的使用提高了代码的安全性? 答:例如这样一段代码: ArrayList<Date> arrayList = new ArrayList<Date>(); arrayList.add(new Date()); arrayList.add("data")

java基础之泛型的继承

关于泛型的基本介绍和理解请参考以下几篇文章,或查询更多资料: 泛?型?与?泛?型?继?承 泛型(包括泛型抽象类的继承) 泛型的继承测试 本篇以简单的List<>方式来进行说明. ArrayList<Object>继承了List<Object>, ArrayList<String>没有继承List<Object> List<?>等价于List<? extends Object> 请参考以下代码: /** * author D

java基础-集合笔记

Iterator(foreach) 遍历时只能通过iterator去删除(添加)元素,不能直接通过集合对象删除或添加元素 Set HashSet底层是一个HashMap HashSet添加元素,先判断hashCode,Set中没有相同的则直接添加,Set中有相同的元素,则进一步判断equals,不同则添加,相同则添加不成功 HashSet删除元素,先判断hashCode,相同则再判断equals,equals相同则删除该 List 1.元素是否相同是通过equals方法进行判断的 2.Array

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员---java基础--集合、数组、字符串的综合面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 这道题综合了集合,数组,字符串,字符串缓冲区,自动装箱等知识点,你把这道题做会了,java基础你也就学的差不多了. 问题: 自定义一个段由小写字母组成的字符串统计每个字母出现的次数. 例如:abc,输出结果为:a(1)b(1)c(1) 代