java复习 --集合类

简介: List接口:可以存放重复内容; set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分; Queue:队列; SortedSet接口:对集合中的数据进行排序;   List接口: List子类:ArrayList,Vector ArrayList和Vector的区别: LinkedList类和queue接口 LinedList 链表的操作类 Queue接口是Collection的子接口   Set接口: Set接口是collection接口的子接口,但是和Collection或者List接口不同的是:set不能加入重复元素。

List接口:可以存放重复内容;
set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分;
Queue:队列;
SortedSet接口:对集合中的数据进行排序;
 

List接口:

List子类:ArrayList,Vector
ArrayList和Vector的区别:

LinkedList类和queue接口

LinedList 链表的操作类
Queue接口是Collection的子接口
 

Set接口:

Set接口是collection接口的子接口,但是和Collection或者List接口不同的是:set不能加入重复元素。
set的主要方法同Collection一致
Set接口的实例无法像List接口那样进行双向输出
Set子类:
散列存放: HashSet
有序存放:TreeSet
Set是无序的,List是按照存放顺序进行排序的。
对象排序必须实现Commparable接口,在commpareTo方法里面对对象数据进行排序
 

集合类的操作:

Iteartor
ListIterator
foreach输出
Enumeration输出
注意: 在使用集合输出的时候必须形成如下思路,只要是碰到集合数据的操作,就一定使用Iterator接口
Iterator接口的操作原理:
Interator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断是否有内容,如果有取出来。
迭代器标准写法:
迭代删除元素:
注意点:
List接口存在删除方法:remove
如果在使用输出的过程中使用list的remove执行删除,会出现问题。
在使用Iterator输出的时候,不要使用集合类里面的remove方法,只能使用迭代器里面的remove方法。
 

ListIterator

Iterator的子接口;Iterator主要是实现从前到后的单项输出,如果实现从后到前或者从前到后的双向输出,就要使用子接口ListIterator
注意:只有List接口才存在ListIterator接口的实例化操作。
先进行向前才能进行向后操作。
 

Map接口:

Collection和Map的区别:
Collection的操作是一个对象,map是一对对象,key-->value形式进行存储
 
Map的子类:
HashMap:无序存放,新的操作类,key不能重复
HashTable,无序存储,旧的操作类,key不允许重复
TreeMap:可以排序的map集合,按照集合中的key进行排序,key不允许重复。
WeakHashMap:弱引用Map集合,当集合中否写内容不再使用时候,可以清除掉无用的数据,并使用gc回收。
IdentityHashMap,key可以重复的Map集合。
 
HashMap和HashTable的区别:
 
Map接口输出:
顺序如下:
使用foresh输出:

IdentityHashMap类:

如果希望key可以重复可以使用IdentityHashMap
SortedMap
SortedSet是TreeSet的实现接口
SortedMap是TreeMap的实现,是可以排序的map
 

Collections,集合类帮助类

提供集合类相关的帮助方法:
emptyList()
emptySet()
addAll()
replayAll()
 

Stack,栈

栈是先进后出的数据结构进行存储的,新的元素压在旧的元素上面;
 
Stack是Vector的子类
push入栈
pop出栈
相关文章
|
1天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
8 0
|
1天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
6 0
|
1天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
1天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
2天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
9 0
|
2天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
12 0
|
2天前
|
Java API 调度
【Java多线程】Thread类的基本用法
【Java多线程】Thread类的基本用法
6 0
|
2天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
9 0
|
3天前
|
存储 安全 算法
掌握Java并发编程:Lock、Condition与并发集合
掌握Java并发编程:Lock、Condition与并发集合
11 0
|
3天前
|
存储 安全 Java
深入理解Java集合框架
深入理解Java集合框架
9 0