当前位置: 首页 > news >正文

网站登录系统制作大丰区城乡和住房建设局网站

网站登录系统制作,大丰区城乡和住房建设局网站,网站后台文章排版,市场推广计划方案模板List、Map、Set是Java集合框架中的三个核心接口#xff0c;它们在存取元素时各自具有独特的特点。以下是对这三个接口存取元素特点的详细分析#xff1a; List接口 有序性#xff1a; List中的元素是有序的#xff0c;它们按照插入的顺序进行排列。 可重复性#xff1a…List、Map、Set是Java集合框架中的三个核心接口它们在存取元素时各自具有独特的特点。以下是对这三个接口存取元素特点的详细分析 List接口 有序性 List中的元素是有序的它们按照插入的顺序进行排列。 可重复性 List允许存储重复的元素即List中可以有多个相同的元素。 索引访问 List提供了基于索引的访问方式可以通过索引位置来访问和修改List中的元素。这类似于数组的访问方式。 实现类 List接口的主要实现类包括ArrayList和LinkedList。ArrayList基于动态数组实现适合随机访问但插入和删除效率较低LinkedList基于双向链表实现插入和删除操作效率高但查询效率较低。 Set接口 元素唯一性 Set中的元素是唯一的不允许重复。如果尝试向Set中添加一个已经存在的元素则添加操作会失败。其实通过查看源码就知道其实是Set的add方法中通过map不能存储重复的key来保证唯一的Set 集合的 add 方法有一个 boolean 的返回值当集合中没有某个元素此时 add 方法可成功加入该元素时 则返回 true当集合含有与某个元素 equals 相等的元素时此时 add 方法无法加入该元素 返回结果为 false。 public boolean add(E e) {return map.put(e, PRESENT)null; } 无序性 Set中的元素没有特定的顺序即不保证元素存储的顺序与插入顺序一致。但是某些Set的实现类如LinkedHashSet可以维护元素的插入顺序。 无索引访问 Set不支持通过索引来访问和修改元素。它主要通过迭代器Iterator或增强型for循环来遍历元素。 实现类 Set接口的主要实现类包括HashSet、LinkedHashSet和TreeSet。HashSet基于哈希表实现查找效率高但不保证顺序LinkedHashSet继承自HashSet使用双向链表维护插入顺序TreeSet基于红黑树实现可以按元素的自然顺序或自定义顺序进行排序。 HashSet延伸 HashSet的存储方式 注意HashSet的存储方式是按照 hashcode 值的某种运算方式进行存储而不是直接按 hashCode 值的大小进行存储。通过查看源码可以看到运算方式如下 static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hashCode()) ^ (h 16); } HashSet如何比较相等 在 Java 中HashSet 是一个基于哈希表的数据结构用于存储不重复的元素。当你将一个对象添加到 HashSet 中时它会根据对象的哈希码通过调用对象的 hashCode() 方法来确定该对象应该存放在哪个桶bucket中。为了确定两个对象是否相等HashSet 依赖两个条件 哈希码相等两个对象的哈希码必须相等。这是通过调用对象的 hashCode() 方法来确定的。equals 方法如果两个对象的哈希码相等那么 HashSet 会进一步调用对象的 equals() 方法来确认它们是否确实相等。 因此要使 HashSet 正确比较两个对象是否相等必须满足以下要求 覆盖 hashCode() 方法确保两个相等的对象具有相同的哈希码。覆盖 equals() 方法确保 equals() 方法定义了两个对象相等的逻辑。 代码实例 class Student {private String name;private int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;Student student (Student) o;return age student.age Objects.equals(name, student.name);}Overridepublic int hashCode() {return Objects.hash(name, age);}Overridepublic String toString() {return Student{ name name \ , age age };} }public class HashSetEqualsTest {public static void main(String[] args) {HashSetStudent set new HashSet();Student p1 new Student(Alice, 30);Student p2 new Student(Alice, 30);set.add(p1);set.add(p2);System.out.println(Set size: set.size()); // 输出应为 1因为 p1 和 p2 相等System.out.println(set); // 输出 Student{nameAlice, age30}} } 输出结果 Set size: 1 [Student{nameAlice, age30}] 如果Student不实现hashcode和equals方法则输入结果如下 Set size: 2 [Student{nameAlice, age30}, Student{nameAlice, age30}] Map接口 键值对存储 Map以键值对key-value的形式存储数据。每个键都是唯一的但值可以重复。 无序性 Map中的键值对没有特定的顺序即不保证键值对的存储顺序与插入顺序一致。但是某些Map的实现类如LinkedHashMap和TreeMap可以维护键值对的顺序。 键的唯一性 Map中的键是唯一的每个键最多映射到一个值。Map使用键的equals()和hashCode()方法来比较键是否相等。 值的多重性 Map中的值可以重复即多个键可以映射到相同的值。 实现类 Map接口的主要实现类包括HashMap、TreeMap、Hashtable、LinkedHashMap和ConcurrentHashMap。HashMap基于哈希表实现查找效率高但不保证顺序TreeMap基于红黑树实现按键的自然顺序或自定义顺序进行排序LinkedHashMap继承自HashMap使用双向链表维护插入顺序或访问顺序Hashtable是线程安全的HashMap但性能较低ConcurrentHashMap是线程安全的HashMap适用于高并发场景。 总结 综上所述List、Map、Set三个接口在存取元素时各有其独特的特点。List适合存储有序的元素列表并允许重复元素Set适合存储不重复的元素集合并提供了高效的查找性能Map则适合存储键值对映射其中键是唯一的而值可以重复。在选择使用哪个接口时应根据具体的应用场景和需求来决定。
http://www.hkea.cn/news/14317400/

相关文章:

  • 河北专业做网站网页设计公司背景图
  • 做视频网站要用到的服务器wordpress缩略图支持外链图
  • 百度建站官网韩国网站建设
  • 手机网站开发怎么收费最近的时事新闻
  • 网站建设的技术路线layui做网站前端
  • 网站开发采购合同模板下载教务管理系统app
  • 沁阳建网站邯郸住房城乡建设厅网站
  • 户县做网站关键词在线试听免费
  • 电商网站开发详细流程官方网站投诉平台
  • 网站佣金怎么做会计分录网页设计作业是什么格式
  • 什么做的网站推广微信小程序低代码开发平台
  • 搭建网站需要注意什么蓬莱做网站公司
  • 网页设计怎么做网站济南网站怎么做seo
  • 江西省城乡建设厅网站湛江seo网站推广
  • 招聘网站简历数据分析怎么做网站制作时间
  • 58同城类似的网站开发做外贸用哪个网站好
  • 嘉兴网站建设咨询金华建站价格
  • 做网站登录制作网站公司那家好
  • 网站做专题页面做网站虚拟主机和云服务器
  • 实现微信绑定登录网站陕西新站seo
  • 英迈思做网站怎么样哪个网站可以做兼职讲师
  • 网站维护运营怎么做新闻发稿平台
  • 济南行知网站建设有限公司怎么样wordpress导出图片不显示不出来
  • 域名空间网站建设做网站域名优化的怎么样
  • 做网站怎么把背景变成纯色自己做网站接入微信和支付宝
  • 深圳外贸企业网站建设微信朋友圈营销文案
  • 印刷建设网站高端品牌衣服
  • 外贸营销网站建设方案重庆市建设施工安全网
  • 四川德行天下建设工程有限公司网站做网站的行情
  • 企业网站栏目规划的重要性百度 验证网站