1.集合的概念
将若干用途、性质相同或相近的“数据”组合而成的一个整体。
Java集合只能保存引用类型的数据,不能保存基本类型数据。
Java常用集合:
Set(集):集合中的对象不按特定方式排序,并且没有重复对象。
List(列表):集合中的对象按照索引位置排序,可以有重复对象,允许按索引位置索引对象。
Map(映射):集合中的每个元素包含一个键(Key)对象和值(Value)对象,集合中没有重复的键对象,值对象可以重复。
2.Collection接口
Collection接口是Java编程语言中用于表示一组对象的根接口。它是Java集合框架中所有集合类的父接口,包含了操作和处理集合的通用方法。Collection接口的实现类可以是有序的,也可以是无序的;可以允许重复元素,也可以不允许重复元素。
迭代和遍历:
Iterator<E> iterator():返回用于遍历集合的迭代器对象。
Collection接口的主要实现类包括:List有序、可重复的集合,允许使用索引访问元素Set:无序、不可重复的集合,不允许包含相同的元素。Queue:一种特殊的集合,通常用于存储和管理待处理元素。LinkList:实现了List接口的链表数据结构。HashSet:实现了Set接口,基于哈希表的集合,不保证元素顺序。TreeSet:实现了Set接口,元素有序排列。
注:Collection接口不直接支持Map
3.Iterator接口
它通过迭代器模式,让你可以逐个遍历集合中的元素,而不需要了解集合的内部结构。这样,可以轻松地遍历集合,而不用担心元素是如何存储的或者集合的具体类型。
Iterator接口中声明了如下方法:
hasNext():判断集合中的元素是否遍历完毕,如果没有,就返回true
next():返回下一个元素
remove():从集合中删除由next()方法返回的当前元素。
4.Set
它继承自Collection接口,用于表示一组元素的集合,Set是一个无序的集合,其中不允许包含重复的元素。
Set接口的主要实现类包括:
HashSet:基于哈希表实现,最常用的Set实现类,元素存储和检索速度较快,但不保证元素的顺序。
TreeSet:元素按照自然排序或自定义排序进行排列。
LinkedHashSet:继承自HashSet,具有HashSet的元素存储和检索速度,但能够保持元素添加顺序。
(1)HashSet
HashSet类是Set接口的一种常见实现,它基于哈希表(Hash Table)数据结构来存储元素,HashSet具有以下特点:
无序性:HashSet中的元素没有特定的顺序,即不保证元素存储和遍历的顺序与添加顺序相同。
不可重复性:HashSet不允许包含重复的元素,每个元素都是唯一的。
快速查找:由于采用了哈希表,HashSet具有快速的查找速度。
(2)TreeSet
TreeSet类是Set接口的另一个实现类。TreeSet中的元素会按照自然排序(如果元素类型实现了Comparable接口)或者自定义排序规则进行排列。
TreeSet特点:
有序性:TreeSet中的元素按照升序排列。如果元素类型实现了Comparable接口,那么TreeSet将使用compareTo()方法来进行自然排序。如果元素没有实现Comparable接口,则在创建TreeSet时需要传入一个Comparator对象来指定排序规则。
不可重复性:TreeSet不允许包含重复的元素,每个元素都是唯一的。
快速查找:TreeSet具有较快的查找、插入和删除操作。
5.List集合
List集合包括List接口以及List接口的所有实现类。List集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似JAVA数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。
(1)接口
List接口继承了Collection接口,因此包含Collection中的所有方法,此外List接口还定义了其他的方法。
(2)List集合的实现类
List接口常用实现类有ArrayList与LinkedList
ArrayList:ArrayList代表长度可变的数组,允许对元素进行快速的随机访问,包括null,并可以根据索引位置对集合进行快速的随机访问,缺点是向指定的索引位置插入对象或删除对象的速度较慢。
LinkedList:在实现中采用链表数据结构,这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入,删除对象时,使用LinkedList类实现的List集合的效率较高,但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较低。
6.Map集合
Map集合没有继承Collection接口,其提供的是key到value的映射。Map中不能包含相同的key,每个key只能映射一个value。Map集合包括Map接口以及Map接口的是所有实现类。
(1)Map接口
Map接口的主要实现类:
HashMap:基于哈希表实现,是最常用的Map实现类。它提供了快速的插入、查找和删除操作,并且不保证元素的顺序。
TreeMap:可以自定义排序规则或使用Key的自然排序。
Map的常用方法:
添加、修改、删除元素:
Map map = new HashMap();
//put方法,往map集合中添加数据
map.put(123,"zhangsan");
map.put("list",99.5);
map.put(66.5,true);
map.put(false,'A');
map.put('D',100);
System.out.println(map);
//map集合键值对中键不能重复,如果保存数据键值重复了,代码不会报错,但是会将
//键对应的值用新的值覆盖掉
map.put(false,'H');
System.out.println(map);
System.out.println("map集合的长度"+map.size());
System.out.println("map集合通过key获取对应的value"+map.get(false));
//通过key删除map集合中的数据
map.remove(66.4);//删除的时候有key会直接删除,没有不删除也不报错
System.out.println(map);
Map信息:
int size():返回Map中键值对的数量。
boolean isEmpty():判断Map是否为空。
void clear():清空Map中的所有键值对。
7.Collection类
对于JAVA 集合,也有一个实用类,Java.util.Collections,它的一部分静态方法专门用于操纵List类型集合,还有一部分静态方法可用于操纵所有的Collection类型或Map类型集合。
//Collections类用于操作集合的
List list = new ArrayList();
list.add("zhangsan");
list.add("zhaoliu");
list.add("zhao");
list.add("lisa");
list.add("daqiao");
list.add("tom");
list.add("liuxiang");
System.out.println(list);
//集合排序,升序排序
Collections.sort(list);
System.out.println(list);
//乱序
Collections.shuffle(list);
System.out.println(list);
//倒序
Collections.reverse(list);
System.out.println(list);
8.泛型
泛型(Generics)是Java编程语言中引入的一种类型参数化机制,它允许定义在类、接口和方法时使用类型参数,使得这些类。接口和方法可以在不同的数据类型上操作。泛型提供了类型安全、可重用、灵活的编程方式,使得代码更加健壮和高效。
//<>中间写的类型就是集合限定类型,也就是泛型
List<String> list = new ArrayList<String>();
list.add("123");
list.add("456");
list.add("789");
Iterator<String> it = list.iterator();
while (it.hasNext()){
String s = it.next();
System.out.println(s);
}
Map<String,Integer> map = new HashMap<>();
map.put("张三",10);
System.out.println(map);
}
标签:map,JAVA,Map,元素,list,接口,学习,集合
From: https://blog.csdn.net/m0_74122592/article/details/141374434