栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-ee-集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-ee-集合

集合继承结构图-——Collection部分

 集合继承结构图——Map部分

二、内容 1、集合概述

List:是一个有序集合,可以放重复的数据

Set:是一个无序集合,不允许放重复的数据

Map:是一个无序集合,集合中包括一个键对象,一个值对象,键对象不允许重复

2、Collection和Iterator Collection 是 List 和 Set 的父接口,在 Collection 中定义了一些主要方法。 接口是抽象的,无法实现实例化 add(E o)确保此 collection 包含指定的元素(可选操作)。 contains(Object o) 如果此 collection 包含指定的元素,则返回 true。 isEmpty() 如果此 collection 不包含元素,则返回 true。 remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存 在的话(可选操作)。 size() 返回此 collection 中的元素数。 关于 Iterator 接口说明,Iterator 称为迭代接口,通过此接口可以遍历集合中的数据,此接口主要方法为: hasNext() 如果仍有元素可以迭代,则返回 true。 next() 返回迭代的下一个元素。 获取集合中迭代器对象
Iterator iter = l.iterator();
while (iter.hasNext()) {
Integer v = (Integer)iter.next();
System.out.println(v);
}
3、List接口

概述

List接口主要实现ArrayList和linkedList,都是有顺序的,也就是放进去是什么顺序,取出来还是什么顺序,也就是基于线性存储,可以看作是一个可变数组

ArrayList :查询数据比较快,添加和删除数据比较慢 ( 基于 可变 数组 ) linkedList :查询数据比较慢,添加和删除数据比较快(基于链表数据结构)
//最好不要这样写,这样属于面向具体编程了
//无法达到灵活互换
//最好面向接口编程
ArrayList arrayList = new ArrayList();
//采用面向接口编程
//使用 Collection 会更灵活,如果 List 不能满足要求
//那么可以采用 HashSet,因为 HashSet 也实现了该接口
Collection c = new ArrayList();
//面向接口编程
//采用 list 接口可以使用 Collection 里的方法
//也可以使用 list 接口扩展的方法
List l = new ArrayList();


将HashSet转化成List集合

collection c=new Hashset();

List mylists=new ArrayList();

linkedList

//最好不要这样写,这样属于面向具体编程了
//无法达到灵活互换
//最好面向接口编程
linkedList arrayList = new linkedList();
//采用面向接口编程
//使用 Collection 会更灵活,如果 List 不能满足要求
//那么可以采用 HashSet,因为 HashSet 也实现了该接口
Collection c = new linkedList();
//面向接口编程
//采用 list 接口可以使用 Collection 里的方法
//也可以使用 list 接口扩展的方法
//List l = new ArrayList();
//因为 linkedList 和 ArrayList 都实现了 List 接口,所以我们可以灵活互
换
//直接修改为 linkedList,对我们的程序没有任何影响
List l = new linkedList()
4、 Set接口

哈希表是一种数据结构,哈希表能够提供快速存取操作。哈希表树基于数组的,数组一旦被创建就不能扩展。如果数组中的元素值和下标能够存在明确的对应关系,那么通过数组元素的值就可以换算出数据元素的下标,通过下标就可以快数定位数组元素,这样的数组就是哈希表。

HashSet

HashSet 中的数据是无序的不可重复的。 HashSet 按照哈希算法存取数据的,具有非常好性能。 工作原理 ,当向 HashSet 中插入数据的时候,他会调用对象的 hashCode 得到该对象的哈希码,然后根据哈希码计算出该对象插入到集合中的位置。 equals 和 hashCode equals ()方法是用来判断其他的对象是否和该对象相等. 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、Integer、Double等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。基本类型是进行值的比较。 加入了重复的数据,因为 hashCode 是不同的,所以会根据算出不同的位置 hashCode 相同,当两个对象的 equals 不同,所以认为值是不一样的,那么 java 会随机换算出一个新的位置,放重复数据 特别是向 HashSet 或 HashMap 中加入数据时必须同时覆盖 equals 和 hashCode 方 法,应该养成一种习惯覆盖 equals 的同时最好同时覆盖 hashCode
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/389827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号