首页 > 编程知识 正文

java知识点总结归纳,java集合基础

时间:2023-05-05 02:58:45 阅读:286100 作者:2105

Java集合 Java集合知识点总结集合框架Collection接口(单列集合)Listarraylistlinkedlistvector去重问题动态删除 QueueSetHashSetLinkedHashSetTreeSet Map接口(双列集合)HashtableHashMapLinkedHashMapPropertiesTreeMap集合视图 collections工具类 分类线程安全线程不安全

Java集合知识点总结

开局一张图,内容全靠编!

上才艺!

集合框架 Collection接口(单列集合) List 允许有重复对象有序(存取都有序)有索引 arraylist 元素数据并非直接存在ArrayList对象里,而是存在其进一步引用的数组里便于快速随机访问非同步底层是数组实现

扩容:

默认为10,每次扩容是之前的1.5倍+1新创建一个大小更大的数组把原数组的内容拷贝到新数组去把新数组的引用赋值到ArrayList对象的elementData字段上,完成扩容。 linkedlist 便于添加删除非同步底层链表实现 vector 线程安全,速度慢,被ArrayList取代,底层是数组Stack是Vector提供的一个子类,用于模拟栈 去重问题 利用HashSet不能添加重复数据的特性 由于HashSet不能保证添加顺序,所以只能作为判断条件利用LinkedHashSet不能添加重复数据并能保证添加顺序的特性(最快)利用List的contains方法循环遍历 动态删除 迭代器动态删除会报ConcurrentModificationException基于fail-fast快速失败机制java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常 Queue

用于模拟”队列”这种数据结构(先进先出 FIFO)

Set 不允许有重复对象无序只能靠迭代器取元素 HashSet 线程不安全基于散列函数实现,存取速度快依赖元素的hashCode方法和euqals方法底层为哈希表和红黑树实现 LinkedHashSet 具有HashSet的查询速度内部采用双向链表维护元素的顺序(默认保持插入顺序排序,如果初始化时将accessOrder设置为true将使用最近最少顺序,即最近使用的元素插在链表尾部)是有序得结合(区别其他)底层是哈希表和链表实现 TreeSet 线程不安全,可以对Set集合中的元素进行排序,底层采用了红黑树通过compareTo或者compare方法中的来保证元素的唯一性二叉树s实现,多用于排序 Map接口(双列集合) Hashtable 线程安全,速度慢。底层是哈希表数据结构不允许null作为键,null作为值 HashMap 线程不安全,速度慢,底层也是哈希表数据结构允许null作为键,null作为值 LinkedHashMap

可以保证HashMap集合有序。存入的顺序和取出的顺序一致。

hashmap+linkedlist(双向循环链表)next用于维护HashMap指定table位置上连接的Entry的顺序的before、After是用于维护Entry插入的先后顺序的new LinkedHashMap<K, V>(0, 0.75f, true)这句代码表示,初始容量为零,0.75是加载因子,表示容量达到最大容量的75%的时候会把内存增加一半。最后这个参数至关重要。表示访问元素的排序方式,true表示按照访问顺序排序,false表示按照插入的顺序排序。这个设置为true的时候,如果对一个元素进行了操作(put、get),就会把那个元素放到集合的最后LRU底层实现 Properties

用于配置文件的定义和操作,使用频率非常高,同时键和值都是字符串。是集合中可以和IO技术相结合的对象

TreeMap

用来对Map集合中的键进行排序.底层是采用红黑树

集合视图 Set keyset()——返回map中包含的所有key的一个Set视图Collection values()——返回一个map中包含的所有value的一个Collection视图Set< Map.Entry < K,V > > entrySet()——返回一个map钟包含的所有映射的一个集合视图 collections工具类

是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

1.sort():

第一种是list中的对象实现Comparable接口第二种方法是根据Collections.sort重载方法来实现

2.shuffle():对集合进行随机排序

3.indexOfSubList():查找subList在list中首次出现位置的索引

4.replaceAll替换批定元素为某元素,若要替换的值存在刚返回true,反之返回false

5.reverse反转集合中元素的顺序

6.lastIndexOfSubList、min、max

分类 线程安全 Vector:Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写VectorHashTableStringBuffer 线程不安全 ArrayListLinkedListHashMapHashSetTreeMapTreeSetStringBulider

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。