常用类——字符串(StringBuilder ,StringBuffer)、集合

常用类—字符串(StringBuilder ,StringBuffer)

StringBuilder与StringBuffer是Java系统中提供的带有缓冲区的字符串。用于对字符串进行频繁的修改操作。

StringBuilder类与String类的区别

         StringBuilder 和String类一样也表示一个字符串,不同之处在于StringBuilder提供了一个缓冲区可用于字符序列的缓冲,可以提高对字符串进行频繁操作(拼接和插入)的效率,同时提供了对字符串的拼接/插入/删除操作方法。

StringBuilderStringBuffer的区别

         StringBuilder没有实现线程同步,是线程非安全的;StringBuffer实现了线程同步,是线程安全的。StringBuilder执行效率相较于StringBuffer而言会更高一些。

 

StringBuilder的使用:(StringBuffer使用类似)

 

 

常用类—集合类                    

java.util.Collection接口:是所有单值集合类的父接口

Collection<接口>

List<接口>

元素有序可重复

ArrayList

LinkedList

Vector

Set<接口>

元素无序不可重复

HashSet

LinkedHashSet

TreeSet

java.util.Map接口:是所有映射集合的父接口

Map<接口>

AbstractMap

<抽象类>

HashMap

TreeMap

Hashtable

Properties

ConcurrentHashMap     分段锁

 

List集合

  1. ArrayListLinkedList的区别:

ArrayList和LinkedList都是List接口下的实现类,都表示元素有序可重复的单值集合。

ArrayList的元素存储是基于数组的实现,对元素的查询及修改操作效率较高;

LinkedList的元素存储是基于链表的实现,对元素的删除及插入操作效率较高。

  1. ArrayListVector的区别:

ArrayList和Vector都是List下的单值集合类,而且元素存储都是基于数组的实现。

ArrayList未实现线程同步,是线程非安全的;Vector则实现了线程同步,是线程安全的;

在非多线程编程中建议使用ArrayList,效率较高一些。

 

set集合

  1. HashSet,LinkedHashSet与TreeSet元素存储

元素去重原理:通过比较hash码确定元素是否重复

HashSet

  1. 基于哈希表的数据存储
  2. 不保证元素的存放顺序
  3. 不保证元素的顺序恒久不变

LinkedHashSet

  1. 基于哈希表和链表的数据存储
  2. 基于链表记录元素的存放顺序,可有序遍历

TreeSet

  1. 基于二叉树(红黑树)的数据存储
  2. 需要指定元素的排序规则
  1. TreeSet集合元素比较

TreeSet中的元素是以二叉树(红黑树/B树)为数据结构进行存储的。

TreeSet中存储的元素需要定义排序规则:

  1. 在存储的元素所在的类中实现Comparable接口常用类——字符串(StringBuilder ,StringBuffer)、集合_第1张图片
  2. 为TreeSet集合指定比较器
  • 常用类——字符串(StringBuilder ,StringBuffer)、集合_第2张图片

 

Map映射

  1. HashMap

 

常用类——字符串(StringBuilder ,StringBuffer)、集合_第3张图片

 

常用类——字符串(StringBuilder ,StringBuffer)、集合_第4张图片

  1. LinkedHashMap:基于哈希表和链表的实现,是有序的映射集合。
  2. Hashtable和HashMap的区别

         Hashtable和HashMap都是Map接口下基于哈希表的实现的映射

         Hashtable不允许null键和null值,并且实现了线程同步,是线程安全的;

         HashMap允许一个null键和多个null值,未实现线程同步,多用于单线程编程。

  1. ConcurrentHashMap
  2. 常用类——字符串(StringBuilder ,StringBuffer)、集合_第5张图片

 

数据结构

  1. 数组
  2. 链表
  3. 二叉树
    1. 将第一个元素定义为根节点
    2. 比当前节点值小的作为左子节点
    3. 比当前节点值大的作为右子节点

 

中序遍历:左根右

先序遍历:根左右

后序遍历:左右根

 

Collections类,提供了对集合或集合中的元素进行操作的静态的方法。    java.util.Collections

如:创建空集合,集合元素顺序反转,集合元素排序。。。。

 

区别:

Collection是一个接口,是所有集合的顶层接口;

Collections是一个帮助类,提供了对集合或集合中的元素进行操作的静态的方法。

常用类——字符串(StringBuilder ,StringBuffer)、集合_第6张图片

Arrays类是一个数组的帮助类,此类中提供了多个用于对数组及数组中元素进行操作的静态方法。

Arrays.sort(arr)  快排

 

JDK8集合新增方法

常用类——字符串(StringBuilder ,StringBuffer)、集合_第7张图片

另外:sum、count

你可能感兴趣的:(java,常用类)