Java基础总结 - 集合

Java基础总结 - 集合
这篇文章只是把大学记的笔记整理到博客,方便自己查看,不保证权威性(•̀ᴗ•́)و ̑̑
Collection(集合)接口:
方法: ①add(Object obj),addAll(Collection coll),size(),clear(),isEmpty();
②remove(Objectobj),removeAll(Collectioncoll),retainAll(Collection coll),equals(Object obj),contains(Object obj)、containsAll(Collectioncoll),hashCode()
③ iterator(),toArray();
|------List(表)接口:存储有序的,可以重复的元素
新增的方法:删除remove(int index) 修改set(int index,Object obj) 获取get(int index)插入add(int index,Object obj)
|------ArrayList(底层用数组实现,适合查操作)
|------LinkedList(用链表实现,更适用于频繁的插入、删除操作)
|------Vector(矢量)(古老的实现类、线程安全的,但效率要低于ArrayList)
|------Set(集)接口:存储无序的,不可重复的元素。
Set集合中的元素所在的类一定要重写equals() 和 hashCode()且等值结果保存一致保持一致(原因可以看hashmap和treemap源码是如何保住键唯一的)
1.无序性:指的是和插入时的顺序无关
2.不可重复性:当向Set中添加进相同的元素的时候,后面的这个不能添加进去。
|------HashSet
|------LinkedHashSet(用过一个链表保证顺序输出)
|------TreeSet(可以按照添加进集合中的元素的指定属性进行排序)
要求TreeSet添加进的元素必须是同一个类的!
两种排序方式:自然排序:①要求添加进TreeSet中的元素所在的类implements Comparable接口
②重写compareTo(Object obj),在此方法内指明按照元素的哪个属性进行排序
③向TreeSet中添加元素即可。若不实现此接口,会报运行时异常
定制排序:①创建一个实现Comparator接口的实现类的对象。在实现类中重写Comparator的compare(Object o1,Object o2)方法
②在此compare()方法中指明按照元素所在类的哪个属性进行排序
③将此实现Comparator接口的实现类的对象作为形参传递给TreeSet的构造器中
④向TreeSet中添加元素即可。若不实现此接口,会报运行时异常
要求重写的compareTo()或者compare()方法与equals()和hashCode()方法保持一致。
Map(映射)接口
存储“键-值”对的数据
添加、修改 put(Object key,Object value)  删除remove(Object key)  获取get(Object key) size() / keySet() values()  entrySet()
|-----HashMap:主要的实现类,可以添加null键,null值(判断了键位null的情况下为放在hash表0的位置)
|-----LinkedHashMap:是HashMap的子类,可以按照添加进Map的顺序实现遍历
|-----TreeMap:需要按照key所在类的指定属性进行排序。要求key是同一个类的对象。对key考虑使用自然排序 或 定制排序
键值均不能为空(底层判断了值不能为空,而建为空又会报空指针异常)
|-----Hashtable:是一个古老的实现类,线程安全的,键值均不能为空(底层判断了值不能为空,而建为空又会报空指针异常)
Iterator接口:用来遍历集合Collection元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章