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

武汉网站建设服务seo在线优化工具 si

武汉网站建设服务,seo在线优化工具 si,镇江网站制作,wordpress上传阿里云在 Java 中,List、Set、Map是常用的集合类型,它们各自具有不同的特点和用途,以下是对它们的详细介绍及区别分析: List(列表) 特点: 有序性:List中的元素是有序的,即元素…

在 Java 中,ListSetMap是常用的集合类型,它们各自具有不同的特点和用途,以下是对它们的详细介绍及区别分析:

List(列表)

  • 特点
    • 有序性List中的元素是有序的,即元素的存入顺序和取出顺序是一致的。例如,先存入元素 A,再存入元素 B,那么按照顺序取出时,会先得到 A,然后是 B
    • 可重复性:允许存储重复的元素。可以在同一个 List 中多次添加相同的对象。
    • 元素可通过索引访问:能够通过索引(下标)来获取、修改或删除元素,索引从 0 开始,就像操作数组一样方便。例如,可以使用 list.get(0) 获取列表中的第一个元素。
  • 常见实现类及用法
    • ArrayList
      • 内部基于数组实现,查询效率高,因为可以通过数组下标直接定位元素。例如,在一个存储大量学生信息的 ArrayList 中查找某个学生的信息,通过索引访问速度很快。
      • 但是在进行频繁的插入和删除操作(尤其是在列表中间位置操作)时,效率相对较低,因为需要移动后续元素来保证顺序和连续性。示例代码如下:
        import java.util.ArrayList;
        import java.util.List;public class ArrayListExample {public static void main(String[] args) {List<String> arrayList = new ArrayList<>();arrayList.add("Apple");arrayList.add("Banana");arrayList.add("Apple");  // 允许重复添加System.out.println(arrayList.get(0));  // 通过索引获取元素arrayList.remove(1);  // 删除指定索引位置的元素}
        }
    • LinkedList
      • 内部基于链表结构实现,在进行插入和删除操作时效率较高,尤其是在链表的首尾位置进行操作。例如,在实现一个队列或者栈的数据结构时,使用 LinkedList 会很方便。
      • 不过,查询效率相对 ArrayList 较低,因为要遍历链表节点来查找元素。示例代码如下:
        import java.util.LinkedList;
        import java.util.List;public class LinkedListExample {public static void main(String[] args) {List<String> linkedList = new LinkedList<>();linkedList.add("Dog");linkedList.add("Cat");linkedList.addFirst("Bird");  // 在链表头部添加元素linkedList.addLast("Fish");  // 在链表尾部添加元素System.out.println(linkedList.get(0));  // 通过索引获取元素}
        }

Set(集合)

  • 特点
    • 无序性:元素在 Set 中是没有特定顺序的,每次遍历元素的顺序可能都不一样,不同的实现类具体的存储顺序规则也不同。
    • 不可重复性:不允许存在重复的元素,即如果尝试添加一个已经在集合中的元素,添加操作将不会生效。
  • 常见实现类及用法
    • HashSet
      • 基于哈希表实现,添加、删除和查询操作的效率通常都比较高。它通过计算元素的哈希值来确定元素在集合中的存储位置,当两个元素的哈希值相同时,会进一步通过 equals 方法来判断是否为同一个元素。例如,存储一组学生的学号,用 HashSet 可以保证学号不会重复。示例代码如下:
        import java.util.HashSet;
        import java.util.Set;public class HashSetExample {public static void main(String[] args) {Set<String> hashSet = new HashSet<>();hashSet.add("Red");hashSet.add("Blue");hashSet.add("Red");  // 重复元素不会被添加System.out.println(hashSet.contains("Blue"));  // 检查元素是否存在}
        }
    • TreeSet
      • 基于红黑树实现,元素会按照自然顺序(如果元素类实现了 Comparable 接口)或者指定的比较器顺序进行排序存储,同时保证元素的不可重复性。例如,存储一组整数并希望它们自动按从小到大的顺序排列,就可以使用 TreeSet。示例代码如下:
        import java.util.Set;
        import java.util.TreeSet;public class TreeSetExample {public static void main(String[] args) {Set<Integer> treeSet = new TreeSet<>();treeSet.add(5);treeSet.add(3);treeSet.add(7);for (Integer num : treeSet) {System.out.println(num);  // 元素按顺序输出}}
        }

Map(映射)

  • 特点
    • 存储键值对Map 是一种用于存储键(Key)和值(Value)的集合,每个键对应一个唯一的值,通过键可以快速查找、获取对应的的值。
    • 键的唯一性:键在同一个 Map 中是不允许重复的,如果添加重复的键,后面添加的值会覆盖前面的值。
    • 无序性(一般情况):大部分常见的 Map 实现类,如 HashMap,元素的存储顺序是不固定的,不过也有一些有序的 Map 实现类,比如 LinkedHashMap 可以保持插入顺序,TreeMap 可以按照键的顺序存储元素。
  • 常见实现类及用法
    • HashMap
      • 基于哈希表实现,提供了高效的键值对存储和检索功能,是最常用的 Map 实现类。例如,在一个学生信息管理系统中,可以用学生的学号作为键,学生对象(包含姓名、成绩等信息)作为值,方便地进行信息查询和更新。示例代码如下:
        import java.util.HashMap;
        import java.util.Map;public class HashMapExample {public static void main(String[] args) {Map<String, String> hashMap = new HashMap<>();hashMap.put("name", "Alice");hashMap.put("age", "20");System.out.println(hashMap.get("name"));  // 通过键获取值hashMap.put("name", "Bob");  // 覆盖之前键为"name"的值}
        }
    • LinkedHashMap
      • 继承自 HashMap,在保持了 HashMap 的高效性能的同时,还能按照插入顺序来记录键值对,方便在需要保留操作顺序的场景中使用。例如,记录用户操作的历史记录,以操作的时间戳作为键,操作详情作为值,按照操作发生的先后顺序存储在 LinkedHashMap 中。示例代码如下:
        import java.util.LinkedHashMap;
        import java.util.Map;public class LinkedHashMapExample {public static void main(String[] args) {Map<String, String> linkedHashMap = new LinkedHashMap<>();linkedHashMap.put("key1", "value1");linkedHashMap.put("key2", "value2");linkedHashMap.put("key3", "value3");for (Map.Entry<String, String> entry : linkedHashMap.entrySet()) {System.out.println(entry.getKey() + " : " + entry.getValue());}}
        }
    • TreeMap
      • 基于红黑树实现,会按照键的自然顺序(如果键的类型实现了 Comparable 接口)或者指定的比较器顺序来排列键值对,常用于需要对键进行排序查找的场景。例如,统计单词出现的频率,以单词作为键,出现次数作为值,将它们存储在 TreeMap 中,就可以按照字母顺序查看单词及对应的频率。示例代码如下:
        import java.util.Map;
        import java.util.TreeMap;public class TreeMapExample {public static void main(String[] args) {Map<String, Integer> treeMap = new TreeMap<>();treeMap.put("apple", 3);treeMap.put("banana", 5);treeMap.put("cherry", 2);for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {System.out.println(entry.getKey() + " : " + entry.getValue());}}
        }

区别总结

比较维度ListSetMap
元素存储特点有序,可重复无序,不可重复以键值对形式存储,键唯一
主要用途适合按顺序存储、频繁通过索引访问元素的场景,如列表展示数据等用于确保元素唯一性的场景,比如去重、判断元素是否存在等用于通过键快速查找对应值的场景,如存储配置信息、映射关系等
常见实现类的查询效率对比(大致)ArrayList查询快(通过索引),LinkedList查询相对慢HashSetTreeSet查询效率都较高,TreeSet还能有序输出元素HashMap查询效率高,LinkedHashMap可保持插入顺序并查询,TreeMap按键排序后查询
常见实现类的插入 / 删除操作效率对比(大致)ArrayList中间插入 / 删除慢,首尾相对好一些;LinkedList首尾插入 / 删除快HashSet插入 / 删除效率高,TreeSet在维持排序结构下插入 / 删除相对稍慢HashMap插入 / 删除效率高,LinkedHashMap类似,TreeMap在维持排序结构下插入 / 删除相对稍慢

通过上述对 ListSetMap 的详细介绍和区别分析,可以根据具体的业务需求和性能要求,在 Java 编程中合理地选择和使用相应的集合类型。

http://www.khdw.cn/news/70676.html

相关文章:

  • 网站建设技术的实现seo精灵
  • 网站是做排行电子商务seo实训总结
  • 巢湖网站制作品牌推广方式有哪些
  • 郑州移动网站建设市场调研模板
  • 企业网站开发价格5188关键词平台
  • now9999网站提示建设中营销型网站建设ppt
  • 品牌营销策划培训课程优化大师官方免费
  • 怎么做自己的淘宝客推广网站博客网站登录入口
  • 律师网站建设哪家专业网站有哪些平台
  • wordpress收起边栏电商网站seo优化
  • 免费手工活外发加工网站网络推销平台有哪些
  • 做网站开始要注意什么网络营销渠道策略有哪些
  • 网站建设 发票名称做销售记住这十句口诀
  • 公司网站制作应该注意些什么网站seo入门基础教程
  • 做网站建设的好处网站建设开发价格
  • 电话外包接单平台宁波seo网络推广优化价格
  • 给公司做网站销售怎样啦站长之家seo查找
  • 如何做网站详细步骤深圳搜索引擎
  • 帮别人做诈骗网站吗线下推广有哪几种渠道
  • 做擦边球网站赚钱么什么是全网营销推广
  • 杭州市网站建设看b站视频软件下载安装
  • 怎样给网站做网络营销收获与体会
  • 做网站排版百度网盘下载官网
  • 网站建设腾讯课堂腾讯3大外包公司
  • http做轮播图网站石家庄百度快照优化排名
  • 临沂网站建设培训湖南关键词优化排名推广
  • 做网站那几步公众号排名优化软件
  • 怎么用织梦做本地网站河源seo
  • 做网站设计需要多久seo搜索引擎优化就业指导
  • 微信商城小程序官网seo优化多少钱