Java类集学习总结(一)

本文详细介绍了Java集合框架的整体结构及各主要接口与类的具体实现,包括List、Set、Map等核心接口的不同特性和应用场景,以及ArrayList、HashSet、HashMap等具体实现类的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java类集总结

一.整体框架

 

 

 

 

                                                                                                            

                                                 我是图片1

 

 

 

二.详细介绍

 

Iterable

 

继承结构: |- java.lang.Iterable

 

接口定义: public interface Iterable<T>

 

重要方法: Iterator<T> iterator() 返回类型 T元素的迭代器。

 

Collection

 

继承结构: |- java.lang.Iterable

                      |- java.util Interface Collection<E>

 

接口定义: public interface Collection<E> extends Iterable<E>

 

重要方法:

1. boolean add(E e) 添加元素

2. boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到这个集合

3. void clear() 从这个集合中移除所有的元素

4. boolean contains(Object o) 返回true代表集合包含指定元素(依赖equals()hasCode()方法)

5. boolean containsAll(Collection<?> c) 返回 true代表这个集合包含指定集合的所有元素

6. boolean equals(Object o) 将指定的对象与此集合进行比较,以进行相等性。

7. int hashCode() 返回此集合的哈希代码值

8. boolean isEmpty() 返回 true代表集合不包含任何元素

9. Iterator<E> iterator() 返回此集合中的元素的迭代器

10. boolean remove(Object o) 从这个集合中移除指定元素的一个实例,如果它是存在的

11. boolean removeAll(Collection<?> c) 删除此集合中包含的所有元素的所有元素

12. int size() 返回此集合中的元素的数目

13. Object[] toArray() 返回包含此集合中所有元素的数组

14. <T> T[] toArray(T[] a) 返回包含此集合中所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型

15. boolean retainAll(Collection<?> c) 仅保留包含在指定集合中的这个集合中的元素

 

List

继承结构:|- java.lang.Iterable

  |-java.util Interface Collection<E>

    |- java.util Interface List<E>

 

接口定义: public interface List<E> extends Collection<E>

 

重要方法:

1. void add(int index, E element) 在列表中指定的位置上插入指定的元素

2. E get(int index) 返回此列表中指定位置的元素

3. int indexOf(Object o) 返回此列表中指定元素的第一个出现的索引,如果此列表不包含元素返回- 1

4. int lastIndexOf(Object o) 返回此列表中指定元素的最后一个发生的索引,如果此列表不包含元素返回- 1

5. ListIterator<E> listIterator() 返回列表元素的列表迭代器(在适当的顺序)双向迭代

6. ListIterator<E> listIterator(int index)在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始

7. E remove(int index) 移除此列表中指定位置的元素

8. E set(int index, E element) 用指定元素替换此列表中指定位置的元素

9. List<E> subList(int fromIndex, int toIndex) 返回一个 fromIndextoIndex的部分数据

 

特征:

继承Collection接口,增强了Collection接口的功能,存储元素是有序的,可以向指定下标的位置添加数据(取出数据),允许集合内数据重复。

 

实现类:

 

 

 

 

ArrayListVector

 

 

ArrayList

Vector

1

定义

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,Cloneable,Serializable

public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable

2

 

异步操作

同步操作

3

 

非线程安全

线程安全

 

 

Set

 

继承结构:

|- java.lang.Iterable

  |-java.util Interface Collection<E>

    |- java.util Interface Set<E>

 

接口定义: public interface Set<E> extends Collection<E>

 

重要方法:没有新增方法

 

特征:保证数据唯一,依赖于(hashCode() , equals()

 

实现类:

HashSet , TreeSet

 

 

HashSet

TreeSet

1

定义

|- java.lang.Object

  |- java.util.AbstractCollection<E>

    |- java.util.AbstractSet<E>

      |- java.util.HashSet<E>

|- java.lang.Object

  |- java.util.AbstractCollection<E>

    |- java.util.AbstractSet<E>

       |- java.util.TreeSet<E>

2

 

无序的

有序的

3

 

哈希表结构

二叉树结构

4

 

元素唯一

元素唯一

 

 

 

Map

 

继承结构: java.util Interface Map<K,V>

 

接口定义: public interface Map<K,V>

 

重要方法:

1. void clear() 从这个映射中移除所有的映射

2. boolean containsKey(Object key) 返回 true是这Map包含一个指定的键

3. boolean containsValue(Object value) 返回 true是存在该值

4. Set<Map.Entry<K,V>> entrySet() 返回一个 Set视图的映射包含这个Map

5. V get(Object key) 返回指定的键映射的值,可以为null

6. boolean isEmpty() 返回 true是空集合

7. Set<K> keySet() 返回所有keyset集合

8. Collection<V> values() 返回所有的valueCollection集合

9. V put(K key, V value) 添加数据

10. void putAll(Map<? extends K,? extends V> m) 添加一个map集合

11. int size()

12. V remove(Object key)

 

 

实现类:

HashMap , TreeMapHashtable

 

 

HashMap

Hashtable

1

|- java.lang.Object

  |- java.util.AbstractMap<K,V>

    |- java.util.HashMap<K,V>  

|- java.lang.Object

  |- java.util.Dictionary<K,V>

    |- java.util.Hashtable<K,V>  

2

无序的

无序的

3

哈希表结构

哈希表结构

4

Keyvalue可以为null

Keyvalue不能为null

5

异步,非线程安全

同步,线程安全

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值