//所以,在thymeleaf中可以直接访问Page中的数据 Listlist = discussPostService.findDiscussPosts(0, page.getOffset(), page.getLimit()); //遍历DiscussPost,根据每一个userId查user //封装DiscussPost和User对象 List
想要了解这段代码的底层逻辑,首先先了解
抽象类- 定义一个类时,不能用具体语言描述对象,这种类定义为抽象类;
- 抽象方法没有方法体,
- 抽象类的关键字是abstract
- 接口是抽象类的延申,
- 接口中的所有方法也没有方法体,
- 接口的关键字是interface,
- 一个类实现一个接口可以用implements关键字,
- 一个类可以实现多个接口
- 集合类又被称为容器
- 数组长度是不变的,集合长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用
- 常用的集合有List集合,Set集合和Map集合;其中List和Set集合继承了Collection接口
- 各接口还提供了不同的实现类
常用方法对List集合和Set集合是通用的
方法 | 功能描述 |
---|---|
add(E e) | 将指定的对象添加到该集合中 |
remove(Object O) | 将指定的对象从该集合中移除 |
isEmpty() | 返回boolean值,判断集合是否为空 |
iterator() | 返回迭代器,用于遍历集合中的对象 |
size() | 返回int值,获取该集合中元素的个数 |
List集合包括List接口以及List接口的所有实现类
实现类:
- ArrayList实现了可变的数组
- LinkedList采用链表结构保存对象
使用List集合时通常声明为List类型
代码中的E可以是合法的数据类型
- 集合的索引也是从0开始
//实例化List集合 ListSet集合list = new ArrayList<>(); List list2 = new LinkedList<>();
(待填充)
Map集合- 提供的是key到value的映射
- 不能包含相同的key,每个key只能映射一个value
常用方法
方法 | 功能描述 |
---|---|
put(K key,Vvalue) | 向集合中添加指定的key和value的映射关系 |
containsKey(Object key) | 如果此映射包含指定key的映射关系,则返回true |
containsValue(Object value) | 如果此映射将一个或者多个key指定到返回值,则返回true |
get(Object key) | 如果存在指定的key对象,则返回该对象对应的值,否则返回null |
keySet() | 返回该集合中的所有key对象形成的Set集合 |
values() | 返回该集合中所有值对象形成的Collection集合 |
实现类:
- HashMap:基于哈希表,允许使用null值和null键,实现快速查找,但必须保证键的唯一性
- TreeMap:具有一定的顺序,不允许键对象是null
Mapmap = new HashMap<>();