其他分享
首页 > 其他分享> > 2022-08-06 第四组 王佳齐 学习笔记

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

作者:互联网

思维导图

 

 

 

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