ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-06 第四组 王佳齐 学习笔记

2022-08-06 21:06:25  阅读:168  来源: 互联网

标签:Set 06 王佳齐 迭代 ArrayList 线程 集合 第四组 HashMap


思维导图

 

 

 

LinkedList:内部结构是双向链表,适合高频率的查找和遍历

面试题:

1.Collection和Map的区别Colllection存储单值,Map存储对值

2.ArrayList和LinkedList的区别ArrayList内部结构是数组,LinkedList内部结构是双向链表

3.ArrayList和Vector的区别几乎一模一样,ArrayList是JDK1.2出现,Vector是JDK1.0出现最本质区别:ArrayList是线程异步的,线程不安全,Vector是线程同步的,线程安全StringBuffer和StringBuilder区别StringBuffer是线程同步的,线程安全,StringBuilder是线程异步的,线程不安全

 

setList和Set的区别List有顺序(添加的先后顺序),元素可重复;Set无序(添加的先后顺序),元素不可重复

Set泛型接口

Set其实是有顺序的,内部专门有一个排序的算法

无序不等于随机,所谓的无序是指没有按照添加的顺序,其实内部是

有一个算法用来排序的。

Set集合所谓的不能有数据重复,实际上默认比较地址

实现类HashSet

Set集合如何确保数据不重复?

保证数据类型的类要重写Hashcode和equils方法

Hashcode和equils重写

实现类TreeSet

排序规则

排序对象的类必须实现comparable接口

实现类LinkedHashSet(继承于HashSet)

在添加数据的同时会维护数据的添加顺序

操作数据的效率比HashSet略低,同样不能get()

面试题HashSet和LinkedSet的区别与联系

比较接口

comparable:

自然排序,排序规则是固定的

comparator:

临时排序

 

Map泛型接口

1.用来存对值K-V key-value

2.key不能重复,value可重复

3.无序

实现类HaskMap

HashMap内部存储结构JDK1.7之前是:链表+二叉树JDK1.8之后及1.7是:链表+数组+红黑树HashMap基本上面试90%问原理

实现类Hashtable

面试题Hashtable和HashMap的区别?1.HashMapJDK1.2出现,是线程异步,线程更不安全的2.HashtableJDK1.0出现,是线程同步的,线程安全的1.HashMap的key可以为空2.Hashtable不可以为null

实现类LinkedHashMap

Properties:属性

是Hashtable的子类

更多的是用来操作属性文件(配合io流使用)

 

 

集合的遍历

List集合的遍历

1.for循环

2.foreach

3.迭代器:

Iterator

Set集合的遍历

1.增强for

2.迭代器

Map集合

1.增强for循环

2.迭代器

在迭代中删除元素

面试题

Iterator<String> iterator = names.iterator();
while(iterator.hasNext()) {
    String s = iterator.next();
    if(Objects.equals(s,"lucy")){
        iterator.remove();
    }
}

 

 

 

 

* 其他的集合:

* 1.LinkedHashMap,在HashMap的基础上维护了一个双向链表。

* 2.TreeMap:天然支持排序

* 3.Collections:Collections是一个工具类

 

面试题并发修改异常

线程安全问题

迭代器是依赖于集合二存在,判断成功以后,集合中如果新增了元

素,但是迭代器是不知道的,所以报错

解决:

1.用迭代器遍历,迭代器删除元素

2.普通for循环遍历,集合删除

 

集合总结集合需要掌握的

1.如何创建需要的集合,多态

2.主要用到List和Map

3.各种区别

4.各种集合方法的调用

5.两个比较接口

6.各种集合的特点,从接口层面到实现类层面

7.重点结合的内部结构:ArrayList和HashMap和HashSet

8.各种集合的遍历

9.线程并发问题【面试题】最重要的集合就是ArrayList和HashMap

 

 

积压的问题:

1.synchronize原理

2.ReentrantLock原理

3.ArrayList原理

4.LinkedList原理

5.HashMap原理***************

6.HashSet原理

 

List->Map->Set

 

 

 学习心得:今天接着昨天的集合学习,感觉这部分的知识比多线程好理解一点。

 

 

 

 

 

 

 

 

 

 

 

标签:Set,06,王佳齐,迭代,ArrayList,线程,集合,第四组,HashMap
来源: https://www.cnblogs.com/yiboxh-10000/p/16557855.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有