当当当当~~~~欢迎大家阅读,接下来我们一起学习容器集合知识点
一、常用集合类体系结构
二、什么是集合
提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
三、Collection(单列集合)(接口)
(一)Collection(单列集合)
(1)Collection集合概念:
是单列集合的顶层接口,它表示一组对象,这些对象也称为collection的元素,Jdk不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。
(2)Collection集合的常用方法
(3)Collection集合的遍历(用迭代器方式遍历集合,集合特有的遍历方式)
Iterator<E>iterator( ):返回此集合中元素的迭代器,通过集合的iterator( )方法得到(多态),所以我们说它是依赖于集合而存在的。
(二)List(单列集合中的可重复集合)(接口)
(1)List集合概念:
有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素,与Set集合不同,列表通常允许重复的元素
(2)List集合的特有方法
(3)List集合的遍历方法(用for循环方式遍历集合,带索引的遍历方式)
用for循环改进(size和get方法的结合)获取集合元素方式的遍历
(4)List集合的特有迭代器Listlterator( )遍历
(4.1)概念
用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置,通过List集合的Listlterator( )方法得到,所以说它是List集合特有的迭代器。
(4.2)Listlterator( )的常用方法
(5) List集合子类特点
(5.1)底层数据结构
ArrayList:底层数据结构是数组,查询快,增删慢
LinkedList:底层数据结构是链表,查询慢,增删快
(5.2)LinkedList集合的特有功能
(三)Set(单列集合中的不可重复集合)(接口)
(1)Set集合概述:
不包含重复元素的集合,没有带索引的方法,所以不能使用普通for循环遍历
(2)哈希值
概念:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
方法:public int hashCode( ):返回对象的哈希码值
对象的哈希值特点:同一个对象多次调用hashCode( )方法返回的哈希值是相同的,默认情况下,不同对象的哈希值是不相同的。通过方法重写,可以实现不同对象的哈希值是相同的
(3)HashSet集合
底层数据结构是哈希表。
对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致。
没有带索引的方法,所以不能使用普通for循环遍历。
由于是Set集合,所以是不包含重复元素的集合。
(4)TreeSet集合概述和特点
元素有序 ,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方法取决于构造方法。
没有带索引的方法,所以不能使用普通for循环遍历。
由于是Set集合,所以不包含重复元素的集合。
(5)排序方法
自然排序Comparable的使用
public class Student implements Comparable<Student> {
@Override
public int compareTo(Student s) {
int num=this.age-s.age;
int num2=num==0?this.name.compareTo(s.name):num;
return num2;
}
}
比较器排序Comparator的使用
//创建集合对象
TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num=s1.getAge()-s2.getAge();
int num2=num==0?s1.getName().compareTo(s2.getName()):num;
return num2;
}
四、Map(双列集合)(接口)
(一)Map(双列集合)
(1)Map集合格式
Interface Map<K,V> K:键的类型;V:值的类型
(2)Map集合添加对象的方式
V put(K key, V value)将指定的值与该映射中的指定键相关联,
当put第一次出现时为添加方法,当值重复时为修改方法。
(3)Map集合的基本功能
(4)Map集合的获取功能
(5)Map集合的遍历
方式一:
获取所有键的集合。用keySet( )方法实现
Set<String>keySet=map.keySet( )
遍历键的集合,获取到每一个键。用增强for实现
for(String key:keySet){ }
根据键去找值。用get(Object key)方法实现
String value=map.get(key)
方式二:
获取所有键值对对象的集合
Set<Map.Entry<K,V>>entrySet( ):获取所有键值对对象的集合
遍历键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个Map.Entry
根据键值对对象获取键和值
用getKey( )得到键,用getValue( )得到值
五、Collections
Collection是接口,Collections是实现类
常用方法:
1: public static<T extends Comparable<? super T>>void sort(List<T>list):
将指定的列表按升序排序
2: public static void reverse(List<?>list)
反转指定列表中元素的顺序
3: public static void shuffle(List<?>list)
使用默认的随机源随机排列指定的列表
以上就是容器集合中的内容啦,希望我的文章对你有所帮助,如果有错误的地方还望大家批评指正,谢谢大家阅读!