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

网络规划设计师教程什么时候出电子版湘潭seo培训

网络规划设计师教程什么时候出电子版,湘潭seo培训,微信小程序卖货怎么做,公司网站用什么程序一、线性数据结构 1. 数组 (Array) 特点:连续内存空间,固定长度,通过索引快速访问。使用场景:数据量固定且需要频繁随机访问。示例:int[] arr new int[5]; arr[0] 10; // O(1)访问2. ArrayList 特点:…

一、线性数据结构

1. 数组 (Array)
  • 特点:连续内存空间,固定长度,通过索引快速访问。
  • 使用场景:数据量固定且需要频繁随机访问。
  • 示例
    int[] arr = new int[5]; 
    arr[0] = 10; // O(1)访问
    
2. ArrayList
  • 特点:基于动态数组实现,自动扩容,线程不安全。
  • 时间复杂度
    • 查询:O(1)
    • 插入/删除:末尾 O(1),中间 O(n)
  • 示例
    List<String> list = new ArrayList<>();
    list.add("Java"); // 添加元素
    list.get(0);      // 获取元素
    
3. LinkedList
  • 特点:双向链表实现,内存不连续,支持快速插入/删除。
  • 时间复杂度
    • 查询:O(n)
    • 插入/删除:头部/尾部 O(1),中间 O(n)
  • 示例
    LinkedList<Integer> linkedList = new LinkedList<>();
    linkedList.addFirst(1); // 头部插入
    linkedList.removeLast(); // 尾部删除
    

二、集合框架 (Collection)

1. HashSet
  • 特点:基于 HashMap 实现,无序,元素唯一。
  • 时间复杂度:插入、删除、查找均为 O(1)
  • 示例
    Set<String> set = new HashSet<>();
    set.add("A");
    set.contains("A"); // 判断存在性
    
2. TreeSet
  • 特点:基于红黑树实现,元素有序(自然顺序或自定义排序)。
  • 时间复杂度:插入、删除、查找均为 O(log n)
  • 示例
    TreeSet<Integer> treeSet = new TreeSet<>();
    treeSet.add(3);
    treeSet.first(); // 最小元素
    
3. LinkedHashSet
  • 特点:继承 HashSet,维护插入顺序的链表。
  • 时间复杂度:与 HashSet 相同。
  • 示例
    Set<String> linkedHashSet = new LinkedHashSet<>();
    linkedHashSet.add("B");
    linkedHashSet.add("A"); // 保持插入顺序
    

三、映射结构 (Map)

1. HashMap
  • 特点:数组+链表/红黑树,键唯一,允许 null 键/值,线程不安全。
  • 时间复杂度:插入、删除、查找 O(1)(理想情况下)。
  • 示例
    Map<String, Integer> map = new HashMap<>();
    map.put("Key", 100);
    map.get("Key"); // 获取值
    
2. LinkedHashMap
  • 特点:继承 HashMap,维护插入顺序或访问顺序。
  • 使用场景:需要有序的键值对(如 LRU 缓存)。
  • 示例
    LinkedHashMap<String, Integer> linkedMap = new LinkedHashMap<>();
    linkedMap.put("A", 1);
    linkedMap.get("A"); // 保持插入顺序
    
3. TreeMap
  • 特点:基于红黑树,键有序(自然顺序或自定义 Comparator)。
  • 时间复杂度:插入、删除、查找 O(log n)
  • 示例
    TreeMap<String, Integer> treeMap = new TreeMap<>();
    treeMap.put("Z", 26);
    treeMap.firstKey(); // 最小键
    
4. ConcurrentHashMap
  • 特点:线程安全的 HashMap,分段锁提高并发性能。
  • 使用场景:高并发环境下的键值存储。
  • 示例
    ConcurrentHashMap<String, String> concurrentMap = new ConcurrentHashMap<>();
    concurrentMap.put("K", "V");
    

四、队列与栈

1. Queue 接口
  • 实现类LinkedListPriorityQueueArrayDeque
  • 常用方法
    • add()/offer():入队
    • remove()/poll():出队
    • element()/peek():查看队首
  • 示例
    Queue<Integer> queue = new LinkedList<>();
    queue.offer(1); // 入队
    queue.poll();    // 出队
    
2. PriorityQueue
  • 特点:基于堆实现,元素按优先级排序。
  • 时间复杂度:插入/删除 O(log n)
  • 示例
    PriorityQueue<Integer> pq = new PriorityQueue<>();
    pq.offer(5);
    pq.poll(); // 取出最小元素
    
3. 栈 (Stack)
  • 实现类:官方推荐使用 Deque 替代 Stack 类。
  • 示例
    Deque<Integer> stack = new ArrayDeque<>();
    stack.push(1); // 压栈
    stack.pop();   // 弹栈
    

五、性能对比与选择指南

数据结构特点适用场景
ArrayList快速随机访问,增删慢频繁查询,数据量固定或变化小
LinkedList增删快,查询慢频繁插入/删除,实现队列/栈
HashMap快速键值存取,无序高频键值操作,无需顺序
TreeMap键有序,速度较慢需要排序或范围查询
HashSet快速去重,无序元素唯一性校验
ConcurrentHashMap线程安全,高并发多线程环境下的共享Map

六、注意事项

  1. 线程安全

    • 单线程环境:优先使用 ArrayListHashMap
    • 多线程环境:使用 ConcurrentHashMapCopyOnWriteArrayList
  2. 遍历安全

    • 使用迭代器时避免直接修改集合(ConcurrentModificationException)。
  3. 初始容量

    • ArrayListHashMap 等预设初始容量(如 new ArrayList<>(100))避免频繁扩容。
http://www.dtcms.com/wzjs/263205.html

相关文章:

  • 网站建设应该懂什么知识今日最近的新闻大事10条
  • 杭州四喜做网站建设么搜狗登录入口
  • 青岛做网站排名seo排名第一的企业
  • 网站开发完以后交付源代码网站收录排名
  • 台州建网站靠谱的代写平台
  • 自己做网站哪种好做怎么弄推广广告
  • 古典风格网站模版sem论坛
  • 南昌网站建设培训天津seo选天津旗舰科技a
  • 淘宝客网站模板免费下载网站seo是干什么的
  • 如何介绍网站建设公司品牌推广服务
  • 网站制作背景图片seo快速优化软件
  • 济宁祥云网站建设网络营销品牌公司
  • python爬虫做网站seo关键词排名优化系统源码
  • 有哪些是外国人做的网站深圳百度代理
  • 天津做网站联系方式网站建设是什么工作
  • 自助建站软件博客网站注册
  • 外贸多语言网站电子制作网站
  • 世界工厂网官网下载宁波免费seo排名优化
  • 溧水区住房和城乡建设厅网站360优化大师最新版的功能
  • 县总工会网站建设情况介绍网站关键词在哪里看
  • 移动端网站推广电子商务网站推广策略
  • 网站升级中 模版快速优化网站排名软件
  • 邢台网站建设 冀icp备一站传媒seo优化
  • 最专业微网站首选公司搜索关键词排名查询
  • 网站建设公司 保证完成 网站seo优化报告
  • wordpress 应用店商广州seo服务
  • 网站制作开发策划一周热点新闻
  • 58建筑网官网seo外链平台
  • 小程序公众号网站开发nba最新排名
  • 安徽省建设工程信网站营销型网站的公司