java---容器

匿名 (未验证) 提交于 2019-12-02 21:40:30

容器类

collection接口




常用方法:

  1. void clear() 移除此 collection 中的所有元素(可选操作)。
  2. boolean contains(Object o ) 判断是否包含。
  3. boolean isEmpty()判断是否为空。
  4. boolean remove(Object o) 移除指定数据元素。
  5. boolean removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
  6. boolean retainAll(Collection<?> c) 求交集,保存两个容器都有的数据。
  7. int size() 返回此 collection 中的元素数。
  8. Object[] toArray()转换为数组。

遍历方法:

  • 增强for|for…each
  • 迭代器
//迭代器   		/* 		 * 1.获取迭代某一个容器的迭代器对象 		 * 2.判断是否存在下一个可迭代的元素  hasNext()  ->true,false 		 * 3.返回下一个元素 next() ->下一个元素 		 */ 		Iterator<String> it=coll.iterator(); 		while(it.hasNext()){ 			System.out.println(it.next()); 		} 

泛型:

  • 泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。
  • 泛型提高稳定性和可读性,规定容器中所有数据的数据类型。

list接口


常用方法:

  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 listIterator() 返回此列表元素的列表迭代器(按适当顺序)。
  6. ListIterator listIterator(int index) 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
  7. E remove(int index) 移除列表中指定位置的元素(可选操作)。
  8. List subList(int fromIndex, int toIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。

遍历方法:

  • 1.普通for
  • 2.for…each
  • 3.iterator
  • 4.ListIterator

容器类之一ArrayList(重要)







Vector 向量

  • 1)Vector线层安全的容器类|同步的,效率较低。
  • 2)扩容原容量的2倍。

LinkedList容器类





常用方法:

  1. void addFirst(E e) 将指定元素插入此列表的开头。
  2. void addLast(E e) 将指定元素添加到此列表的结尾。
  3. E getFirst() 返回此列表的第一个元素。
  4. E getLast() 返回此列表的最后一个元素。
  5. boolean offerFirst(E e) 在此列表的开头插入指定的元素。
  6. boolean offerLast(E e) 在此列表末尾插入指定的元素。

Set接口

遍历方法:

  • 1.增强for
  • 2.迭代器

HashSet容器类




HashSet存储引用数据类型去重:

  • 需要重写hashCode()方法和equals()方法进行自定义类型去重。如果不重写hashCode(),可以遇到没有equals方法这一步就医过滤掉不是相同的对象了,直接存储,不会equals方法比较。hashCode()相同的对象有可能相同可以不相同,进一步比较equals()。hashCode()不相同的对象肯定不相同,过滤掉一写不相同的对象,不需要进一步比较equals方法效率较高。

哈希底层存储数据:

  1. 对数据进行hash算法算出存放(数组)的位置。位置=数据%9;
  2. 把当期那数据存放在对应的桶中,存放之前先判断桶中是否存在数据,如果没有直接存放数据,如果存在数据,拿桶中的数据和该数据比较是否相同,如果相同就去重不存放,如果不相同就存放。
  3. 桶中多个数据用链表结构链接。
  4. 如果桶中数据超过八个,用红黑树存放。

Comparable接口

Comparator接口

TreeSet容器类

是由TreeMap维护的。


注意:


引用数据类型

  • 1)实现内部比较器
  • 2)自定义外部比较器
文章来源: https://blog.csdn.net/qq_41899248/article/details/91890650
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!