Java数据结构
Java数据结构
JCF
ArrayLisy(数组链表)
LinkedList(双向链表)
集合set(元素只能是对象)
HashSet(基于HashMap实现)
不存在相同的元素,无序的集合,支持插入null
-add添加一个元素
-clear清除整个HashSet
-contains判定是否包含一个元素
-remove删除一个元素 size 大小
-retainAll计算两个集合交集
LinkedHashSet (基于HashMap实现)
不存在重复的元素,双向链表,保存插入顺序,支持插入null
Hashset和LinkedHashSet判定元素重复的原则是①判断两个元素的hashCode返回值是否相同,若不同,返回false,②若两者的hashCode相同,判定equals方法,若不同,返回false,否则返回true,③重写了hashCode方法和equals方法后,应当吧toString方法一起重写,保持返回值一致
TreeSet
不支持插入null,按照插入元素的大小升序输出
-add添加一个元素
-clear清除整个HashSet
-contains判定是否包含一个元素
-remove删除一个元素 size 大小
继承Compare接口,根据compareTo方法或指定Comparator排序
映射Map
Hashtable(key,value)
-K-V对,K和V都不允许为null
-同步,多线程安全
-无序的
-适合小数据量
-clear清空数据
-contains等同于containsValue
-containsKey是否包含某一个Key
containsValue是否包含某一个值
-get根据Key获取相应的值
-put增加新的K-V对
-remove 删除某一个K-V对;size返回数据大小
HashMap
-K-V对,K和V允许为null
-不同步,多线程不安全
JCF中的工具类
Arrays
-Arrays:处理对象是数组
-排序:对数组排序, sort/parallelSort(二分法查找)
-查找:从数组中查找一个元素, binarySearch
-批量拷贝:从源数组批量复制元素到目标数组, copyOf
-批量赋值:对数组进行批量赋值, fill
-等价性比较:判定两个数组内容是否相同, equal
Collections
-Collections:处理对象是Collection及其子类
-排序:对List进行排序,sort
-搜索:从List中搜索元素,binarySearch
-批量赋值:对List批量赋值,fill。
-最大、最小:查找集合中最大/小值,max,min
-反序:将List反序排列,reverse
Compareable接口(只有一个conpareT
·>返回1,==返回0,<返回-1