Java教程

集合笔记

本文主要是介绍集合笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

新生代:刚创建都对象都存在这里,这里的垃圾回收机制频率很快。位于堆空间。

老年代:超过15次的垃圾回收都没有回收,就进入到老年代,老年代的垃圾回收机制频率比较慢。位于堆空间。

永久代:不进行垃圾回收的堆内存区域,比如类,方法,常量,静态修饰的各种成员都放在这里。以前jdk1.8之前位于非堆空间。现在是位于堆空间,换了个名字叫元空间。

String字符串拼接能避免尽量避免。不可避免的话就用StringBuffer(线程安全)或者StringBuilder(线程不安全)中的方法拼接。

可以把类集称为Java对数据结构的实现,类集的概念是在jdk1.2之后才正式引入的。在java.util包中

List可以存储重复元素,Set不可以存储重复元素。

ArrayList线程不安全,Vector线程安全,都采用动态数组扩容的方法。

LinkedList实现了一些数据结构,但是使用比较少。

Iterator是迭代器,可以迭代Collection下所有集合,ListIterator只能用于迭代List集合。

foreach循环即增强for循环。

HashSet散列存放值。是用HashMap进行存储的。

快速失败指的是在遍历集合时,如果有外部操作改变了集合内容,就会抛出异常,快速而干净的失败;安全失败指的是失败时不会出错,安全失败迭代时是将集合复制了一份进行迭代,所以对集合的操作不会导致抛出异常。

TreeSet的有序指的是根据数据的自然顺序进行排列。如果添加元素的顺序是BACD,则输出元素的顺序是ABCD,也就是说元素是有序存储的。仅限于编码表中已有的编码,如果是自己创建的类型是不会自动进行排序的,如果不指定排序的方式的话而是会抛出ClassCastException异常的。必须要对自定义的类型实现Comparable接口也就是自定义排序方式才能进行比较。也就是要重写compareTo方法,返回正数代表当前类型大,0代表相等,负数代表小。

HashMap的存储方式是根据对象的哈希值取余哈希表的长度,然后将其存储在相应的下标处。当某一个下标处的数据存储到8个时在这个下标原先链表会转化成红黑树,减少到6个时会转化为链表。散列因子为0.75,意思是当哈希表中有75%的下标都存储数据了,会进行扩容,扩容后长度为原长度的2倍。

在通过HashMap的Key找Value时,不仅要比较哈希值还要调用equals方法比较两个对象是否相同。

这篇关于集合笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!