Collection体系、遍历、泛型
2019-12-24 16:00:48来源:博客园 阅读 ()
Collection体系、遍历、泛型
Collection体系(集合类,它是一个接口): 两个子类: List、Set(这两个子类也是接口) List有两个常用子类:(值,不唯一,允许有重复的元素,都是有序的) ArrayList: 数组结构,查找快,增删慢。线程不安全。 LinkedList: 有序,链表结构,查找慢,增删快。线程不安全。 Vector:(以过时) 有序,数组结构,查找增删都慢。线程安全。 Set:有三个常用子类(值,唯一,不允许有重复的元素) HashSet: 底层是哈希表结构,无序。 如何保证唯一性的? 由HashCode和equals方法保证唯一性的。 顺序: 先判断HashCode方法 相同:判断equals方法,相同:不添加。不相同:添加 不相同:添加 LinkedHashSet: 有序,底层是链表加哈希表结构,由链表保证有序,哈希表保证唯一。 TreeSet: 底层是二叉树结构,有一定的自然排序算法。 是如何保证元素的唯一性的? 根据返回值是否是0判断是否重复。并且还要保证元素有序: 根据返回值是正数还是负数。 实现方案:添加比较器 元素具备比较器:实现Comparable接口,重写CompareTo方法。 集合具备比较器:实现Comparator接口,重写Compare方法。 List和Set集合遍历的几种方式: Set集合是没有普通for的遍历方式 普通for、增强for、迭代器 普通for格式: for(int i = 0; i < list.size(); i++){} 增强for格式: for(类型 变量名 : 集合名){} 迭代器格式:(提供了两个方法:hasNext和next方法) Iterator<类型> it = 集合名.iterator(); 什么时候使用? 需要操作集合的角标的时候使用普通for 只需要遍历集合的时候使用增强for或迭代器。 泛型: 泛型的通配符为:? <? extends T> 向下限制,只可以传递T类型或T类型的子类 <? super T> 向上限制,只可以传递T类型或T类型的父类 泛型的定义:定义泛型可以在类中预支地使用未知的类型。可定义在类、方法或接口上。 泛型的使用:一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。 泛型的好处: 将运行时期的ClassCastException,转移到了编译时期变成了编译失败。 ? 避免了类型强转的麻烦。 泛型的格式: 类上: 修饰符 class 类名<代表泛型的变量> { } 使用格式: 使用格式:创建对象时,确定泛型的类型 接口上: interface 类名<代表泛型的变量>{ } 使用格式: 1、定义类时确定泛型的类型 2、始终不确定泛型的类型,直到创建对象时,确定泛型的类型 方法上: 修饰符<> 返回值类型 方法名(泛型变量 变量名){} 使用格式: 使用格式:调用方法时,确定泛型的类型原文链接:https://www.cnblogs.com/rrong/p/12093293.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用斗地主的实例学会使用java Collections工具类 2020-06-05
- 遍历Map的方式 2020-05-31
- HashMap 的 7 种遍历方式与性能分析!(强烈推荐) 2020-05-23
- LeetCode 面试题33. 二叉搜索树的后序遍历序列 2020-05-22
- LeetCode 105. 从前序与中序遍历序列构造二叉树 2020-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash