【Java课程设计/毕业设计】基于前后端分离的低碳二手书籍流通系统的设计与实现 基于 SpringBoot 的校园绿色二手书交易商城【附源码、数据库、万字文档】
2026/7/8 9:04:10
Collection:所有单列集合(如 List、Set、Queue)的根接口。
Map:双列集合(键值对)的根接口。
| 方法 | 说明 |
|---|---|
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 移除指定元素 |
boolean contains(Object o) | 是否包含该元素 |
int size() | 元素个数 |
boolean isEmpty() | 是否为空 |
void clear() | 清空 |
Iterator<E> iterator() | 获取迭代器 |
default void forEach(Consumer<? super E> action) | 遍历每个元素 |
default boolean removeIf(Predicate<? super E> filter) | 批量删除满足条件的元素 |
Object[] toArray() | 转为数组 |
<T> T[] toArray(T[] a) | 转为指定类型数组 |
示例:
List<String>list=newArrayList<>();list.add("A");list.remove("A");list.forEach(System.out::println);list.removeIf(s->s.length()>1);3 List接口(有序、可重复、有索引)| 方法 | 说明 |
|---|---|
E get(int index) | 获取指定索引元素 |
E set(int index, E element) | 替换并返回旧值 |
void add(int index, E element) | 在指定位置插入 |
E remove(int index) | 移除并返回该位置元素 |
int indexOf(Object o) | 第一次出现的索引 |
int lastIndexOf(Object o) | 最后一次出现的索引 |
List<E> subList(int from, int to) | 返回子列表视图 |
常用实现类:ArrayList(随机访问快)、LinkedList(增删快,也实现Deque)
示例:
List<Integer>list=newArrayList<>(Arrays.asList(10,20,30));list.add(1,15);// [10, 15, 20, 30]list.set(2,25);// [10, 15, 25, 30]List<Integer>sub=list.subList(1,3);// [15, 25]4 Set接口(无重复元素)无特有方法,完全继承Collection。
常用实现类:
HashSet– 无序,允许 nullLinkedHashSet– 维护插入顺序TreeSet– 自动排序(需 Comparable 或 Comparator)示例:
Set<String>set=newHashSet<>();set.add("Apple");set.add("Apple");// 忽略,返回 falseSystem.out.println(set.size());// 1// TreeSet 排序Set<Integer>sorted=newTreeSet<>(Arrays.asList(5,1,3));System.out.println(sorted);// [1, 3, 5]5 Map接口(键值对)| 方法 | 说明 |
|---|---|
V put(K key, V value) | 添加键值对,返回旧值 |
V get(Object key) | 根据键获取值 |
V remove(Object key) | 移除键,返回对应值 |
boolean containsKey(Object key) | 是否包含该键 |
boolean containsValue(Object value) | 是否包含该值 |
int size() | 键值对数量 |
Set<K> keySet() | 所有键的 Set 视图 |
Collection<V> values() | 所有值的 Collection 视图 |
Set<Map.Entry<K,V>> entrySet() | 所有键值对的 Set 视图 |
default void forEach(BiConsumer<? super K, ? super V> action) | 遍历键值对 |
default V getOrDefault(Object key, V defaultValue) | 键不存在返回默认值 |
default V putIfAbsent(K key, V value) | 仅当键不存在或为 null 时放入 |
default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) | 键不存在时计算并放入 |
default V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) | 合并值 |
常用实现类:
HashMap– 无序,允许 null 键和值LinkedHashMap– 维护插入顺序TreeMap– 按键排序示例:
Map<String,Integer>map=newHashMap<>();map.put("Alice",30);map.put("Bob",25);map.forEach((k,v)->System.out.println(k+": "+v));Integerage=map.getOrDefault("Charlie",0);// 0map.computeIfAbsent("David",k->40);// 插入 David=406 Deque额外方法(双端操作)| 操作端 | 抛出异常方法 | 返回特殊值方法 | 查看(不移除) |
|---|---|---|---|
| 队首 | addFirst(e) | offerFirst(e) | getFirst()/peekFirst() |
| 队首移除 | removeFirst() | pollFirst() | - |
| 队尾 | addLast(e) | offerLast(e) | getLast()/peekLast() |
| 队尾移除 | removeLast() | pollLast() | - |
常用实现类:
ArrayDeque– 数组实现,效率高,推荐作为栈/队列使用LinkedList– 也实现了Deque接口示例:
Queue<String>queue=newArrayDeque<>();queue.offer("A");queue.offer("B");Stringhead=queue.poll();// "A"Stringpeek=queue.peek();// "B"// 作为栈使用(Deque)Deque<String>stack=newArrayDeque<>();stack.push("first");stack.push("second");Stringtop=stack.pop();// "second"Collections和Arrays| 方法 | 描述 |
|---|---|
Collections.sort(List<T> list) | 升序排序(要求元素实现Comparable) |
Collections.sort(List<T> list, Comparator<? super T> c) | 按自定义比较器排序 |
Collections.reverse(List<?> list) | 反转顺序 |
Collections.binarySearch(List<? extends Comparable<? super T>> list, T key) | 二分查找(需已排序) |
Collections.shuffle(List<?> list) | 随机打乱 |
Collections.synchronizedList/Set/Map | 返回线程安全的包装类 |
Collections.unmodifiableList/Set/Map | 返回只读视图 |
Collections.addAll(Collection<? super T> c, T... elements) | 批量添加 |
Arrays.asList(T... a) | 将数组转为固定大小的List(视图) |
Arrays.sort(T[] a) | 对数组排序 |
Arrays.copyOf(T[] original, int newLength) | 数组拷贝 |
示例:
List<Integer>list=newArrayList<>(Arrays.asList(3,1,4,1,5));Collections.sort(list);// [1, 1, 3, 4, 5]Collections.reverse(list);// [5, 4, 3, 1, 1]intindex=Collections.binarySearch(list,3);// 2(已排序后)// 数组转 List(注意:返回的 List 不可增删长度,但可修改元素)String[]arr={"a","b"};List<String>listFromArr=Arrays.asList(arr);listFromArr.set(0,"x");// 修改 arr[0] 同时改变| 方法 | 说明 |
|---|---|
Collection.removeIf(Predicate filter) | 批量删除满足条件的元素 |
Map.computeIfAbsent/computeIfPresent | 键存在/不存在时计算并更新值 |
Map.forEach | 遍历键值对 |
List.replaceAll(UnaryOperator<E> operator) | 替换所有元素 |
List.sort(Comparator<? super E> c) | 列表排序(替代Collections.sort) |
示例:
list.replaceAll(x->x*2);// 每个元素翻倍list.sort(Comparator.naturalOrder());// 自然排序map.computeIfAbsent("newKey",k->100);// 若 key 不存在则放入 100map.merge("count",1,Integer::sum);// 若 key 存在则累加,否则放入 1