Java----泛型与集合
Java----泛型与集合
- 一、泛型
- 二、Map集合
- 三、HashMap集合特点
- 四、LinkedHashMap集合
- 五、Hashtable
- 六、TreeMap
- 七、Properties
一、泛型
1、泛型的安全机制
泛型作用:强制了集合存储固定的数据类型
2、书写格式
//集合类<>
3、泛型的好处
①安全性提高了
②程序代码量减少
③避免了强制类型转换
④程序的问题提前到了运行前
4、泛型中的E
E没有实际价值,只是一个变量
特殊:等待接收指定的数据类型
ArrayList<String> ar = new ArrayList<String>();
//此时E变成String类型
5、自定义泛型类
public class MyGe<MY> {private MY i;public void setI(MY i){this.i = i;}public MY getI(){return i;}
}
public class GeTest {public static void main(String[] args) {MyGe<String> my = new MyGe<String>();my.setI("my");String str = my.getI();System.out.println(str);}
}
6、自定义泛型方法
//非静态方法public void print(MY my){System.out.println(my);}//静态自定义泛型方法public static <A>void print1(A a){System.out.println(a);}
说明:
1、静态方法参数中的泛型,不能和类一样
2、静态方法的泛型,需要在方法上单独定义
3、定义写在返回值类型前面
7、泛型接口
方法1:
//定义接口
public interface In <A>{public abstract void print2(A a);
}
//实现类实现接口重写方法
public class GeTest2<A> implements In<A>{public void print2(A a){System.out.println(a);}
}
//调用实现类
public class Test1 {public static void main(String[] args) {In<String> in = new GeTest2<String>();in.print2("abc");}
}
方法2
//泛型接口的使用方法2
public class GeTest3 implements In<String>{public void print2(String s){System.out.println(s);}
}
8、泛型通配符
public static void ha(List<?> list){}
//<?>表示通配符:可以传任何类型
9、泛型限定
泛型限定:限制的是数据类型
<? extends Company>传递类型可以是Company或者是其他子类 <? extends E>传递E类型或者是E的子类,泛型上限限定 <? super E>传递E类型或者是E的父类,泛型下限限定
二、Map集合
1、Map接口方法
1、V put(k,v)存储键值对,存储重复键,返回被覆盖之前的值
2、V get(K)通过键获取值,参数传递键,找这个键对应的值,没有这个键返回null
3、boolean containsKey(K)判断集合是否包含这个键,返回true
4、boolean containsValue(V)判断集合是否包含这个值,返回true
5、int size()返回集合长度,Map集合中键值对的个数
6、V remove(K)移除指定键值对,返回被移除之前的值
7、Collectionvalues() Map集合中所有的值拿出,存储到Collection集合
2、Map集合的遍历-键值对映射关系
1、Map接口的方法Set<Map.Entry<Key.Value>>entrySet()
方法返回Set集合,集合中存储的元素,比较特别
存储的是Map集合中,键值对映射关系的对象,内部接口Map.Entry
2、遍历Set集合
3、取出Set集合的元素
是Map.Entry接口对象
接口对象方法:getKey(),getValue()
三、HashMap集合特点
1、哈希表结构
2、保证键的唯一性,用于键的对象,必须重写hashCode,equals方法
3、集合允许使用null,作为键或值
四、LinkedHashMap集合
继承于HashMap集合实现Map接口,LinkedHashMap底层事项原理是哈希表,双向链,存储有序,特性和HashMap一样
五、Hashtable
特点
底层是哈希表
线程安全,运行速度慢被HashMap取代
不允许null的值和键
六、TreeMap
特点
1、底层是红黑树结构
2、存储到TreeMap中元素,对键进行排序
3、排序依据对象的自然顺序,作为键的对象,实现了接口Comparable
自己提供比较器,实现家接口Comparator,优先级高
七、Properties
继承Hashtable,实现Map接口
底层是哈希表
线程是安全的运行速度慢
集合没有泛型的写法,键和值的数据类型是String类型
集合有自己的特有方法
此集合可以和IO流对象结合使用,实现数据的持久存储
Java----泛型与集合相关推荐
- (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入
-- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...
- java 泛型和集合_Java集合和泛型
集合 常用的集合有ArrayList,TreeSet,HashMap,HashSet. ArrayList 最常用的集合,每次插入都在后面追加元素. TreeSet 以有序状态保持并可防止重复.当你需 ...
- java泛型视频教程_Java泛型快速教程
java泛型视频教程 泛型是Java SE 5.0引入的一种Java功能,在其发布几年后,我发誓那里的每个Java程序员不仅会听说过,而且已经使用过. 关于Java泛型,有很多免费和商业资源,而我使用 ...
- java泛型实验报告,java实验报告异常集合类和泛型
java实验报告异常集合类和泛型 成绩: 面向对象原理与 Java 实践课程实验报告实验 3:异常.集合类和泛型姓 名 _ ___ 班 级 _ ___ 学 号 _ ___ 实验地点 _ ___ 实验时 ...
- Java实用教程笔记 泛型与集合框架
泛型与集合框架 Generics 链表 LinkedList < E >泛型类 接口回调 常用方法 LinkedList< E >泛型类实现Link< E >泛型接 ...
- java 泛型 t_Kotlin(2) 泛型与集合
前言 以一个java老鸟的角度,如何去看 kotlin.Java源代码应该如何用Kotlin重构.如何正确学习kotlin并且应用到实际开发中.本文将会探究. 本文分两大块,重难点和潜规则. 重难点: ...
- java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
使用Java的Generics功能我创建了一个List对象,在左侧我使用的是原始类型List,在右侧我使用的是泛型类型ArrayList. List myList=new ArrayList(); 我 ...
- 【Java】Collection集合和泛型
学习目标:会存取,掌握特性 学习方式:学习顶层接口/抽象类的共性方法,使用底层的子类创建对象使用 1 集合框架 集合类的继承体系: Collection接口: ·············1) List ...
- java 泛型集合示例_Java 泛型(示例代码)
1.泛型的由来 我们先看下面这段代码: 报错信息如下: 也就是 集合中第二个数据是 Integer,但是我们取出来的时候将其转换为 String 了,所以报错. 那么这个如何解决呢? ①.我们在遍历的 ...
- 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet
一.集合的特点 二.继承结构图 三.List集合 1.特点 2.ArrayList类 3.LinkedList类 4.两者的对比 5.集合的遍历 四.Set集合 1.特 ...
最新文章
- 服务器虚拟化北向,KVM虚拟化的部署及使用
- F#中的异步和并行设计模式(三):代理
- 我家的漫路超市——怎么开淘宝网店
- getopt函数应用
- JavaScript中的对象比较[重复]
- python机器学习库sklearn——数据预处理
- 苹果系统上安装linux系统,Mac OS X下制作安装Linux系统的USB启动盘
- java应用安全设计_应用层安全架构设计-访问控制
- TOMCAT如何配置域名,可以用本地服务进行测试
- 雷达卫星测高原理、最新发展情况
- J2EE视频实战教程网址
- MySQL联合查询及取别名
- WGS-84坐标系转GCJ02坐标系
- 蓝桥杯 Fibonacci数列求余数 C语言版本
- mcc、mbuild和mex命令详解
- 美国企业家宣言(转)
- 台式计算机主板检测与维修,主板故障!教你如何用主板诊断卡检测维修电脑主板故障...
- 拔山盖世(BSGS)算法
- 遍历HashMap的几种常用方法
- GO基础---for循环