imtoken钱包苹果版|collection的用法

作者: imtoken钱包苹果版
2024-03-08 19:23:02

Java Collection集合概述及其常用方法 - LeeHua - 博客园

Java Collection集合概述及其常用方法 - LeeHua - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

Lee Hua's Blog

热爱编程 -- 写Bug

首页

联系

订阅

管理

Java Collection集合概述及其常用方法

Collection集合概述

Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合

与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的引用。

数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素

集合框架的介绍

Collection集合的常用功能

java.utiL.Collection接口

所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法

任意的单列集合都可以使用Collection接口中的方法

Collection接口的共性方法

public boolean add(E e) 把给定的对象添加到当前集合中。

public void clear() 清空集合中所有的元素。

public boolean remove(E e) 把给定的对象在当前集合中册除。

public boolean contains(E e) 判断当前集合中是否包合给定的对象。

public boolean isEmpty() 判断当前集合是否为空。

public int size() 返回集合中元素的个数。

public Object[] toArray() 把集合中的元素,存储到数组中。

add()方法

作用:把给定的对象添加到当前集合中。

import java.util.Collection;

import java.util.ArrayList;

public class DemoCollectionAdd {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

// 输出该集合的内容是为空的(其中它重写了toString方法)

System.out.println("没有进行任何操作的ArrayList集合对象:" + collection);

// 往ArrayList集合中添加元素,返回值只一个boolean值,一般不用接收这个返回值

boolean addReturn = collection.add("LeeHua");

System.out.println("往集合中添加一个元素后的返回值:" + addReturn);

System.out.println("使用add方法往集合里面添加了元素后:" + collection);

}

}

输出结果:

没有进行任何操作的ArrayList集合对象:[]

往集合中添加一个元素后的返回值:true

使用add方法往集合里面添加了元素后:[LeeHua]

remove方法

作用:把给定的对象在当前集合中册除。

import java.util.Collection;

import java.util.ArrayList;

public class DemoCollectionRemove {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

System.out.println("往集合中添加元素前的集合是:" + collection);

// 往集合中添加元素

collection.add("一号");

collection.add("二号");

collection.add("三号");

collection.add("四号");

System.out.println("往集合中添加元素后的集合是:" + collection);

// 使用remove方法,把给定的对象在当前集合中册除

// 如果要删除的元素存在该集合,那么就返回true

// 否则返回false

boolean removeReturn1 = collection.remove("一号");

System.out.println("删除元素\"一号\"的返回值:" + removeReturn1);

System.out.println("删除元素\"一号\"后的集合是:" + collection);

boolean removeReturn2 = collection.remove("十号");

System.out.println("删除元素\"十号\"的返回值:" + removeReturn2);

System.out.println("删除元素\"十号\"后的集合是:" + collection);

}

}

输出结果:

往集合中添加元素前的集合是:[]

往集合中添加元素后的集合是:[一号, 二号, 三号, 四号]

删除元素"一号"的返回值:true

删除元素"一号"后的集合是:[二号, 三号, 四号]

删除元素"十号"的返回值:false

删除元素"十号"后的集合是:[二号, 三号, 四号]

contains方法

作用:判断当前集合中是否包合给定的对象。

import java.util.ArrayList;

import java.util.Collection;

public class DemoCollectionContains {

public static void main(String[] args) {

Collection collection = new ArrayList<>();

// 往集合中添加元素

collection.add("对象1");

collection.add("对象2");

collection.add("对象3");

collection.add("对象4");

System.out.println("集合:" + collection);

// 使用contains方法,判断当前集合中是否包合给定的对象

// 如果包合给定的对象,那么就返回true

// 否则返回false

boolean containsReturn1 = collection.constains("对象100");

System.out.println("是否包含\"对象100\":" + containsReturn1);

boolean containsReturn2 = collection.constains("对象1");

System.out.println("是否包含\"对象1\":" + containsReturn2);

}

}

输出结果:

集合:[对象1, 对象2, 对象3, 对象4]

是否包含"对象100":false

是否包含"对象1":true

isEmpty方法

作用:判断当前集合是否为空。

import java.util.ArrayList;

import java.util.Collection;

public class DemoCollectionIsEmpty {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

// 判断集合是否为空

boolean isEmptyReturn1 = collection.isEmpty();

System.out.println("集合是否为空:" + isEmptyReturn1);

// 向集合里面添加元素

collection.add("一号元素");

// 判断集合是否为空

boolean isEmptyReturn2 = collection.isEmpty();

System.out.println("集合是否为空:" + isEmptyReturn2);

}

}

输出结果:

集合是否为空:true

集合是否为空:false

size方法

作用:返回集合中元素的个数。

import java.util.ArrayList;

import java.util.Collection;

public class DemoCollectionSize {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

// 使用size方法,查看集合中的元素个数

int collectionSize1 = collection.size();

System.out.println("collectionSize1 = " + collectionSize1);

// 往集合中添加元素

collection.add("一号元素");

collection.add("二号元素");

collection.add("三号元素");

collection.add("四号元素");

collection.add("五号元素");

// 使用size方法,再次查看集合中的元素个数

int collectionSize2 = collection.size();

System.out.println("collectionSize2 = " + collectionSize2);

}

}

输出结果:

collectionSize1 = 0

collectionSize2 = 5

toArray方法

作用:把集合中的元素,存储到数组中。

public class DemoCollectionToArray {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

// 往集合中添加元素

collection.add("一号元素");

collection.add("二号元素");

collection.add("三号元素");

collection.add("四号元素");

collection.add("五号元素");

// 使用toArray方法,把集合中的元素,存储到数组中。

Object[] collectionToArray = collection.toArray();

// 遍历输出

for (int i = 0; i < collectionToArray.length; i++) {

System.out.println(collectionToArray[i]);

}

}

}

输出结果:

一号元素

二号元素

三号元素

四号元素

五号元素

clear方法

作用:清空集合中的所用元素

import java.util.ArrayList;

import java.util.Collection;

public class DemoCollectionClear {

public static void main(String[] args) {

// 使用多态,创建一个ArrayList对象

Collection collection = new ArrayList<>();

// 往集合中添加元素

collection.add("一号元素");

collection.add("二号元素");

collection.add("三号元素");

collection.add("四号元素");

collection.add("五号元素");

System.out.println("清空集合元素之前:" + collection);

// 使用clear方法,清空集合中的所用元素

collection.clear();

System.out.println("清空集合元素之后:" + collection);

}

}

输出结果:

清空集合元素之前:[一号元素, 二号元素, 三号元素, 四号元素, 五号元素]

清空集合元素之后:[]

本文来自博客园,作者:LeeHua,转载请注明原文链接:https://www.cnblogs.com/liyihua/p/12182562.html

posted @

2020-01-12 15:23 

LeeHua 

阅读(20228) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 LeeHua

Powered by .NET 8.0 on Kubernetes

Java 集合框架 | 菜鸟教程

Java 集合框架 | 菜鸟教程

菜鸟教程 -- 学的不仅是技术,更是梦想!

首页

HTML

CSS

JavaScript

Vue

Bootstrap

NodeJS

Python3

Python2

Java

C

C++

C#

Go

SQL

Linux

jQuery

本地书签

首页

HTML

CSS

JS

本地书签

Search

Python3 教程

Python2 教程

Vue3 教程

vue2 教程

Bootstrap3 教程

Bootstrap4 教程

Bootstrap5 教程

Bootstrap2 教程

Java 教程

Java 教程

Java 简介

Java 开发环境配置

Java 基础语法

Java 注释

Java 对象和类

Java 基本数据类型

Java 变量类型

Java 变量命名规则

Java 修饰符

Java 运算符

Java 循环结构

Java 条件语句

Java switch case

Java Number & Math 类

Java Character 类

Java String 类

Java StringBuffer

Java 数组

Java 日期时间

Java 正则表达式

Java 方法

Java Stream、File、IO

Java Scanner 类

Java 异常处理

Java 面向对象

Java 继承

Java Override/Overload

Java 多态

Java 抽象类

Java 封装

Java 接口

Java 枚举

Java 包(package)

Java 高级教程

Java 数据结构

Java 集合框架

Java ArrayList

Java LinkedList

Java HashSet

Java HashMap

Java Iterator

Java Object

Java 泛型

Java 序列化

Java 网络编程

Java 发送邮件

Java 多线程编程

Java Applet 基础

Java 文档注释

Java 实例

Java 8 新特性

Java MySQL 连接

Java 9 新特性

Java 测验

Java 数据结构

Java 泛型

Java 集合框架

早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。

虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。

集合框架被设计成要满足以下几个目标。

该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。

该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。

对一个集合的扩展和适应必须是简单的。

为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。

从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:

接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象

实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。

算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序,这些算法实现了多态,那是因为相同的方法可以在相似的接口上有着不同的实现。

除了集合,该框架也定义了几个 Map 接口和类。Map 里存储的是键/值对。尽管 Map 不是集合,但是它们完全整合在集合中。

集合框架体系如图所示

Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。

集合接口

集合框架定义了一些接口。本节提供了每个接口的概述:

序号

接口描述

1

Collection 接口

Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

Collection 接口存储一组不唯一,无序的对象。

2

List 接口

List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。

List 接口存储一组不唯一,有序(插入顺序)的对象。

3

Set

Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。

Set 接口存储一组唯一,无序的对象。

4

SortedSet

继承于Set保存有序的集合。

5

Map

Map 接口存储一组键值对象,提供key(键)到value(值)的映射。

6

Map.Entry

描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。

7

SortedMap

继承于 Map,使 Key 保持在升序排列。

8

Enumeration

这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。

Set和List的区别

1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

2. Set 检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。

3. List 和数组类似,可以动态增长,根据实际存储的数据的长度自动增长 List 的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

集合实现类(集合类)

Java提供了一套实现了Collection接口的标准集合类。其中一些是具体类,这些类可以直接拿来使用,而另外一些是抽象类,提供了接口的部分实现。

标准集合类汇总于下表:

序号

类描述

1

AbstractCollection 

实现了大部分的集合接口。

2

AbstractList 

继承于AbstractCollection 并且实现了大部分List接口。

3

AbstractSequentialList 

继承于 AbstractList ,提供了对数据元素的链式访问而不是随机访问。

4

LinkedList

该类实现了List接口,允许有null(空)元素。主要用于创建链表数据结构,该类没有同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是在创建List时候构造一个同步的List。例如:

List list=Collections.synchronizedList(newLinkedList(...));

LinkedList 查找效率低。

5

ArrayList

该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。

6

AbstractSet 

继承于AbstractCollection 并且实现了大部分Set接口。

7

HashSet

该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。

8

LinkedHashSet

具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。

9

TreeSet

该类实现了Set接口,可以实现排序等功能。

10

AbstractMap 

实现了大部分的Map接口。

11

HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。

12

TreeMap

继承了AbstractMap,并且使用一颗树。

13

WeakHashMap

继承AbstractMap类,使用弱密钥的哈希表。

14

LinkedHashMap

继承于HashMap,使用元素的自然顺序对元素进行排序.

15

IdentityHashMap

继承AbstractMap类,比较文档时使用引用相等。

在前面的教程中已经讨论通过java.util包中定义的类,如下所示:

序号

类描述

1

Vector

该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。

2

Stack

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

3

Dictionary

Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。

4

Hashtable

Hashtable 是 Dictionary(字典) 类的子类,位于 java.util 包中。

5

Properties

Properties 继承于 Hashtable,表示一个持久的属性集,属性列表中每个键及其对应值都是一个字符串。

6

BitSet

一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。

集合算法

集合框架定义了几种算法,可用于集合和映射。这些算法被定义为集合类的静态方法。

在尝试比较不兼容的类型时,一些方法能够抛出 ClassCastException异常。当试图修改一个不可修改的集合时,抛出UnsupportedOperationException异常。

集合定义三个静态的变量:EMPTY_SET,EMPTY_LIST,EMPTY_MAP的。这些变量都不可改变。

序号

算法描述

1

Collection Algorithms

这里是一个列表中的所有算法实现。

如何使用迭代器

通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。

一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或 ListIterator接口。

迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了 Iterator,以允许双向遍历列表和修改元素。

序号

迭代器方法描述

1

使用 Java Iterator这里通过实例列出 Iterator 和 ListIterator 接口提供的所有方法。

遍历 ArrayList

实例

import java.util.*;

public class Test{

public static void main(String[] args) {

List list=new ArrayList();

list.add("Hello");

list.add("World");

list.add("HAHAHAHA");

//第一种遍历方法使用 For-Each 遍历 List

for (String str : list) { //也可以改写 for(int i=0;i

System.out.println(str);

}

//第二种遍历,把链表变为数组相关的内容进行遍历

String[] strArray=new String[list.size()];

list.toArray(strArray);

for(int i=0;i

{

System.out.println(strArray[i]);

}

//第三种遍历 使用迭代器进行相关遍历

Iterator ite=list.iterator();

while(ite.hasNext())//判断下一个元素之后有值

{

System.out.println(ite.next());

}

}

}

解析:

三种方法都是用来遍历ArrayList集合,第三种方法是采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。

遍历 Map

实例

import java.util.*;

public class Test{

public static void main(String[] args) {

Map map = new HashMap();

map.put("1", "value1");

map.put("2", "value2");

map.put("3", "value3");

//第一种:普遍使用,二次取值

System.out.println("通过Map.keySet遍历key和value:");

for (String key : map.keySet()) {

System.out.println("key= "+ key + " and value= " + map.get(key));

}

//第二种

System.out.println("通过Map.entrySet使用iterator遍历key和value:");

Iterator> it = map.entrySet().iterator();

while (it.hasNext()) {

Map.Entry entry = it.next();

System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

}

//第三种:推荐,尤其是容量大时

System.out.println("通过Map.entrySet遍历key和value");

for (Map.Entry entry : map.entrySet()) {

System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

}

//第四种

System.out.println("通过Map.values()遍历所有的value,但不能遍历key");

for (String v : map.values()) {

System.out.println("value= " + v);

}

}

}

如何使用比较器

TreeSet和TreeMap的按照排序顺序来存储元素. 然而,这是通过比较器来精确定义按照什么样的排序顺序。

这个接口可以让我们以不同的方式来排序一个集合。

序号

比较器方法描述

1

使用 Java Comparator

这里通过实例列出Comparator接口提供的所有方法

总结

Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。

集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。

集合框架的类和接口均在java.util包中。

任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。

Java 数据结构

Java 泛型

6 篇笔记

写笔记

#0   分享  Com***able@jihe.com 163ArrayList 和 LinkedList 的区别

ArrayList 是 List 接口的一种实现,它是使用数组来实现的。

LinkedList 是 List 接口的一种实现,它是使用链表来实现的。

ArrayList 遍历和查找元素比较快。LinkedList 遍历和查找元素比较慢。

ArrayList 添加、删除元素比较慢。LinkedList 添加、删除元素比较快。分享   分享  Com***able@jihe.com6年前 (2017-12-15)

#0   分享  Com***able@jihe.com 83任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。 任何对象没有使用泛型之前会自动转换Object类型,使用泛型之后不用强制转换。分享   分享  Com***able@jihe.com6年前 (2017-12-15)

#0   影法师  ren***e1@sina.com 66有关于 map.entrySet() 和 keySet():

1、如果遍历 hashMap() 时 entrySet() 方法是将 key 和 value 全部取出来,所以性能开销是可以预计的, 而 keySet() 方法进行遍历的时候是根据取出的 key 值去查询对应的 value 值, 所以如果 key 值是比较简单的结构(如 1,2,3...)的话性能消耗上是比 entrySet() 方法低, 但随着 key 值得复杂度提高 entrySet() 的优势就会显露出来。

2、综合比较在只遍历 key 的时候使用 keySet(), 在只遍历 value 的是使用 values() 方法, 在遍历 key-value 的时候使用 entrySet() 是比较合理的选择。

3、如果遍历 TreeMap 的时候, 不同于 HashMap 在遍历 ThreeMap 的 key-value 时候务必使用 entrySet() 它要远远高于其他两个的性能, 同样只遍历 key 的时候使用 keySet(), 在只遍历 value 的是使用 values() 方法对于 TreeMap 也同样适用。影法师   影法师  ren***e1@sina.com6年前 (2018-02-02)

#0   °  858***854@qq.com 33集合框架被设计成要满足以下几个目标。该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。对一个集合的扩展和适应必须是简单的。

所有的集合框架都包含如下内容:

接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。Set和List的区别1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。°   °  858***854@qq.com6年前 (2018-06-25)

#0   zhangchaohong137  251***396@qq.com 43集合还有快速失败(fail—fast)和安全失败(fail—safe)机制,想要深入的话得去了解一下(Java 的快速失败和安全失败),解决方法我在此整理一下吧:

1、在单线程的遍历过程中,如果要进行 remove 操作,可以调用迭代器的 remove 方法而不是集合类的 remove 方法。

2、使用 java 并发包(java.util.concurrent)中的类来代替 ArrayList 和 HashMap。比如使用 CopyOnWriterArrayList 代替 ArrayList,CopyOnWriterArrayList 在是使用上跟 ArrayList 几乎一样,CopyOnWriter 是写时复制的容器(COW),在读写时是线程安全的。该容器在对 add 和 remove 等操作时,并不是在原数组上进行修改,而是将原数组拷贝一份,在新数组上进行修改,待完成后,才将指向旧数组的引用指向新数组,所以对于 CopyOnWriterArrayList 在迭代过程并不会发生 fail-fast 现象。但 CopyOnWrite 容器只能保证数据的最终一致性,不能保证数据的实时一致性。对于 HashMap,可以使用 ConcurrentHashMap,ConcurrentHashMap 采用了锁机制,是线程安全的。在迭代方面,ConcurrentHashMap 使用了一种不同的迭代方式。在这种迭代方式中,当 iterator 被创建后集合再发生改变就不再是抛出 ConcurrentModificationException,取而代之的是在改变时new新的数据从而不影响原有的数据 ,iterator 完成后再将头指针替换为新的数据 ,这样 iterator 线程可以使用原来老的数据,而写线程也可以并发的完成改变。即迭代不会发生 fail-fast,但不保证获取的是最新的数据。

zhangchaohong137   zhangchaohong137  251***396@qq.com5年前 (2018-10-30)

#0   Carpen  pan***peng2016@126.com 7这里纠正一下List和Set的区别,Set检索效率是比List高的。Set的检索效率相对于List来说较高,其原因在于Set是基于哈希表或树等数据结构来存储元素的。在查找元素时,Set会先计算元素的哈希值或使用比较器进行比较,然后再根据哈希值或比较结果在数据结构中查找元素。这种方式的时间复杂度为O(1)或O(logN),因此Set的检索效率相对较高。而List的检索效率相对于Set来说较低,其原因在于List是基于数组或链表等数据结构来存储元素的。在查找元素时,List需要依次遍历元素,直到找到目标元素或遍历完所有元素。这种方式的时间复杂度为O(N),因此List的检索效率相对较低。容易弄混的地方在于随机访问元素和检索元素,这两者不是一回事。随机访问元素是指可以通过索引或偏移量来访问集合中的元素,例如使用 ArrayList 中的 get(int index) 方法。随机访问元素的效率通常非常高,因为它可以直接访问内部数据结构中的元素,时间复杂度为O(1)。检索元素是指在集合中查找特定元素的过程,例如使用 Set 中的 contains(Object o) 方法。检索元素的效率取决于集合的实现方式和元素数量,通常需要遍历集合中的所有元素来查找目标元素,时间复杂度为O(N)。再补充一点,于大规模数据,Set的内存占用较大,而ArrayList的性能较优。Carpen   Carpen  pan***peng2016@126.com11个月前 (04-06)

点我分享笔记

取消

分享笔记

昵称昵称 (必填)

邮箱邮箱 (必填)

引用地址引用地址

分类导航

HTML / CSSHTML 教程HTML5 教程CSS 教程CSS3 教程Bootstrap3 教程Bootstrap4 教程Bootstrap5 教程Font Awesome 教程Foundation 教程 JavaScriptJavaScript 教程HTML DOM 教程jQuery 教程AngularJS 教程AngularJS2 教程Vue.js 教程Vue3 教程React 教程TypeScript 教程jQuery UI 教程jQuery EasyUI 教程Node.js 教程AJAX 教程JSON 教程Echarts 教程Chart.js 教程Highcharts 教程Google 地图 教程 服务端Python 教程Python2.x 教程Linux 教程Docker 教程Ruby 教程Java 教程C 教程C++ 教程Perl 教程Servlet 教程JSP 教程Lua 教程Rust 教程Scala 教程Go 教程PHP 教程数据结构与算法Django 教程FastAPI 教程Zookeeper 教程设计模式正则表达式Maven 教程Verilog 教程ASP 教程AppML 教程VBScript 教程 数据库SQL 教程MySQL 教程PostgreSQL 教程SQLite 教程MongoDB 教程Redis 教程Memcached 教程 数据分析Python 教程NumPy 教程Pandas 教程Matplotlib 教程Scipy 教程R 教程Julia 教程 移动端Android 教程Swift 教程jQuery Mobile 教程ionic 教程Kotlin 教程 XML 教程XML 教程DTD 教程XML DOM 教程XSLT 教程XPath 教程XQuery 教程XLink 教程XPointer 教程XML Schema 教程XSL-FO 教程SVG 教程 ASP.NETASP.NET 教程C# 教程Web Pages 教程Razor 教程MVC 教程Web Forms 教程 Web ServiceWeb Service 教程WSDL 教程SOAP 教程RSS 教程RDF 教程 开发工具Eclipse 教程Git 教程Svn 教程Markdown 教程 网站建设HTTP 教程网站建设指南浏览器信息网站主机教程TCP/IP 教程W3C 教程网站品质

Advertisement

反馈/建议

在线实例

·HTML 实例

·CSS 实例

·JavaScript 实例

·Ajax 实例

·jQuery 实例

·XML 实例

·Java 实例

字符集&工具

· HTML 字符集设置

· HTML ASCII 字符集

· JS 混淆/加密

· PNG/JPEG 图片压缩

· HTML 拾色器

· JSON 格式化工具

· 随机数生成器

最新更新

·

Rust 宏

·

Seaborn 教程

·

Pandas 相关性分析

·

31.2k star, 免...

·

Dev Home —...

·

免费开源的 AI ...

·

11.2k star, 免...

站点信息

·

意见反馈

·

免责声明

·

关于我们

·

文章归档

关注微信

Copyright © 2013-2024 菜鸟教程 

runoob.com All Rights Reserved. 备案号:闽ICP备15012807号-1

微信关注

java集合Collection常用方法详解_collection<>-CSDN博客

>

java集合Collection常用方法详解_collection<>-CSDN博客

java集合Collection常用方法详解

最新推荐文章于 2023-06-25 18:29:13 发布

Galen-gao

最新推荐文章于 2023-06-25 18:29:13 发布

阅读量10w+

收藏

610

点赞数

129

分类专栏:

Java基础

本文为博主原创文章版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

本文链接:https://blog.csdn.net/javaee_gao/article/details/96372530

版权

Java基础

专栏收录该内容

8 篇文章

5 订阅

订阅专栏

前言

出去面试的时候,对java的集合框架考察的知识点还是蛮多的。除了基础的集合常见API使用,对集合底层的实现原理以及数据结构等也有很多考察方面。而自己对这方面知之甚少,特地抽空进行研究和学习一下。

为什么要有集合

提到集合就不得不提一下数组,好多集合底层都是依赖于数组的实现。数组一旦初始化后,长度就确定了,存储数据对象不能达到动态扩展,其次数组存储元素不便于对数组进行添加、修改、删除操作,而且数组可以存储重复元素。这个时候集合对作用显现出来了。集合分为Collection和Map两种体系。下面先介绍Collection的集合类的继承树如下图所示: Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一,整个集合框架就围绕一组标准接口而设计,本文研究的集合基于JDK8的实现,下面将会进行多个集合类方法使用和主要方法源码分析,以作为后续出去面试的参考资料。

Collection方法接口介绍

Collection 接口有 3 种子类型集合: List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、ArrayBlockingQueue等,下面是Collection的所有方法。 这些方法即可以操作Set集合,也可以操作Queue和List集合,下面分别使用Collection集合接口的方法说明

方法名说明boolean add(E e) 向集合添加元素e,若指定集合元素改变了则返回true boolean addAll(Collection c)把集合C中的元素全部添加到集合中,若指定集合元素改变返回truevoid clear()清空所有集合元素boolean contains(Object o)判断指定集合是否包含对象o boolean containsAll(Collection c)判断指定集合是否包含集合c的所有元素 boolean isEmpty()判断指定集合的元素size是否为0 boolean remove(Object o)删除集合中的元素对象o,若集合有多个o元素,则只会删除第一个元素 boolean removeAll(Collection c)删除指定集合包含集合c的元素boolean retainAll(Collection c)从指定集合中保留包含集合c的元素,其他元素则删除int size()集合的元素个数 T[] toArray(T[] a)将集合转换为T类型的数组

下面是主要方法的演示:

@Test

@SuppressWarnings("all")

public void testCollection() {

// 创建Collection接口的实现

Collection collection = new ArrayList<>();

// 添加元素

collection.add("嘻嘻");

String src = "????";

collection.add(src);

System.out.println(collection);

// 创建Collection的实现

Collection coll = new HashSet<>();

coll.add("?");

coll.add("?");

coll.add("?");

System.out.println(coll);

// 添加一个集合数据

collection.addAll(coll);

// 输出集合的长度

System.out.println(collection);

// 判断是否包含

System.out.println(collection.contains("?"));

// 移除元素

collection.remove("?");

// 添加对象

collection.add(new Person("张三", 23, 5000d));

// 当认为两个对象属性一致,相等时候,需重写hashCode 和 equals方法

System.out.println(collection.contains(new Person("张三", 23, 5000d)));

System.out.println("-------");

collection.add(null);

Collection collection1 = new ArrayList<>();

collection1.add("嘻嘻");

collection1.add("?");

// 求两个集合的交集(只保留collection1存在的元素)

collection.retainAll(collection1);

System.out.println(collection);

// 清空元素

collection.clear();

System.out.println(collection);

}

java8新特性操作集合

使用lambda表达式遍历集合

java8为Collection的父接口(Iterable)提供了一个默认的Foreach方法,我们可以使用它进行集合遍历,若对lambda不太了解,不妨访问一下这篇文章☞ lambda表达式学习

@Test

public void testForeach() {

Collection collection = new ArrayList<>();

collection.add("i");

collection.add("love");

collection.add("china");

// foreach遍历

collection.forEach(e-> System.out.println(e));

// 可以使用方法引用简写

collection.forEach(System.out::println);

// 或者迭代器的forEachRemaining方法

collection.iterator().forEachRemaining(System.out::println);

}

使用java8的predicate操作集合

@Test

public void testPredicate() {

Collection collection = new ArrayList<>();

// 添加0-49

for (int i = 0; i < 50; i++) {

collection.add(i);

}

// 移除10-49的数字

collection.removeIf(e -> (e > 9 && e < 50));

System.out.println(collection);// 输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

}

基于流操作集合 java8之后引入了Stream相关流操作java集合,通过流大大简化了对集合操作,关于这些流式操作,可以查看这篇文章☞ Stream入门学习,下面是基于流的一些简单演示:

@Test

public void testIntStream() {

Collection collection = new ArrayList<>();

Random random = new Random();

for (int i = 0; i < 10; i++) {

collection.add(random.nextInt(100));

}

System.out.println(collection);

// collection存储的数值是包装类型,可以将其转换为IntStream

IntStream intStream = collection.stream().mapToInt(e -> e);

// intStream.forEach(System.out::println);

System.out.println(collection.stream().mapToInt(e -> e).sum());

// 输出最大值

collection.stream().mapToInt(e -> e).max().ifPresent(System.out::println);

// 输出最小值

collection.stream().mapToInt(e -> e).min().ifPresent(System.out::println);

// 统计大于50的数

System.out.println(collection.stream().filter(e -> e > 50).count());

// 原集合每一个值加1

collection.stream().mapToInt(e-> e+1).forEach(System.out::println);

// 排序

collection.stream().mapToInt(e-> e).sorted().forEach(System.out::println);

// 原数值每一个元素扩大2倍

int[] ints = collection.stream().mapToInt(e -> e << 1).toArray();

// 输出原数组

System.out.println(Arrays.toString(ints));

// 将数组转流

IntStream stream = Arrays.stream(ints);

// 输出流平均数

System.out.println(stream.average().getAsDouble());

}

优惠劵

Galen-gao

关注

关注

129

点赞

610

收藏

觉得还不错?

一键收藏

知道了

10

评论

java集合Collection常用方法详解

前言出去面试的时候,对java的集合框架考察的知识点还是蛮多的。除了基础的集合常见API使用,对集合底层的实现原理以及数据结构等也有很多考察方面。而自己对这方面知之甚少,特地抽空进行研究和学习一下。为什么要有集合提到集合就不得不提一下数组,好多集合底层都是依赖于数组的实现。数组一旦初始化后,长度就确定了,存储数据对象不能达到动态扩展,其次数组存储元素不便于对数组进行添加、修改、删除操作,而且...

复制链接

扫一扫

专栏目录

Java(Collection_List_Map_Set).rar_java集合类详解

09-24

Java集合排序及java集合类详解(Collection、List、Map、Set)

Java集合Collection、List、Set、Map使用详解编程资料

03-24

Java集合Collection、List、Set、Map使用详解

10 条评论

您还未登录,请先

登录

后发表或查看评论

Java集合Collection、List、Set、Map使用详解.doc

09-30

Java集合Collection、List、Set、Map使用详解.doc

collection<> java_Java中Collection 的基本认识

weixin_39737051的博客

02-20

178

集合Conllection的基本概念:1、集合的基本认识:如StringBuffer&StringBuilder是集合(存储的对象类型是String)。数组、对象与其很相似,但是还有区别。2、集合的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就需要使用集合来进行存储。3、集合的特点:(1)用于存储对象的容器;即集合中存储的元素是对象(2)集合的长度是可变的;(3)集...

Collection集合容器基础讲解

听海的博客

03-19

1540

1.简介

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。

2.图解

即:...

googleCollection

03-28

googleCollection com.google.common.collect

java之Collection

热门推荐

m0_46191714的博客

01-31

2万+

主要内容

Collection集合

迭代器

增强for

List集合

Set集合

学习目标

能够说出集合与数组的区别

说出Collection集合的常用功能

能够使用迭代器对集合进行取元素

能够说出集合的使用细节

能够使用集合存储自定义类型

能够使用foreach循环遍历集合

能够说出List集合和Set集合的区别

能够说出List集合各种实现类的区别

能够说出Set集合各种实现类的区别

能够说出Collection和Map集合的区别

说出Map集合的常用功能

能够遍历Map集

Java——Collection集合

挣钱买房买车的博客

07-21

4140

java中Collection集合详解

【Java 基础篇】Java Collection详解

繁依Fanyi的博客

06-25

3992

Collection是Java集合框架的根接口,它定义了一些基本的操作和行为,如添加、删除、遍历等。List和Set。List是一个有序的集合,可以包含重复元素。它提供了按索引访问、插入、删除等操作。常见的实现类有ArrayListLinkedList和Vector。Set是一个不允许包含重复元素的集合。它提供了高效的元素查找和去重。常见的实现类有HashSetTreeSet和。此外,Map接口也是Collection框架的一部分,它提供了键值对的存储和操作。Map中的键是唯一的,值可以重复。

Java基础之Collection

qq_45344586的博客

04-07

1928

Java基础之Collection

Java集合详解--Collection

Striving

06-29

920

1.集合和数组的区别:

数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:

数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型(你存储的是简单的int,它会自动装箱成Integer)。数组和集合存放的对象皆为对象的引用地址

数组容易固定无法动态改变,集合类容量动态改变。

数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数

集合有多种实现方式和不同适

Java集合框架之Collection接口详解

08-31

主要为大家详细介绍了Java集合框架之Collection接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java集合 collection-list-LinkedList详解

08-31

下面小编就为大家带来一篇java集合 collection-list-LinkedList详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Java集合教程之Collection实例详解

08-27

集合,或者叫容器,是一个包含多个元素的对象,下面这篇文章主要给大家介绍了关于Java集合教程之Collection的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

mybatis collection list string

04-26

NULL

博文链接:https://jaychang.iteye.com/blog/2357143

java8新特性-lambda表达式入门学习

GalenGao

05-13

5342

定义

jdk8发布新特性中,lambda是一大亮点之一。lambda表达式能够简化我们对数据的操作,减少代码量,大大提升我们的开发效率。Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。如果...

java8新特性-Stream入门学习

GalenGao

05-14

2832

上一篇介绍了Lambda的学习,如果对Lambda表达式还不清晰的同学可以戳一下这个链接:java8新特性-lambda表达式入门学习。java8除了提供了Lambda表达式,操作集合的Stream API也是非常新特性中最值得学习和掌握的,它大大简化了,我们操作数据集合的代码量的书写。简单来说Stream是一个抽象概念,可以通过查找,过滤,映射等操作,这一点与Scala中集合操作很类似。

S...

Java基本数据类型和运算符面试温习

GalenGao

08-09

691

前言

java是一门强类型语言,其表现为两个方面:一是变量必须先声明其类型方可使用,二是变量一旦确定类型后便不可更改(另一个角度则是:指定类型的变量只能接受与之相匹配的类型),java的数据类型包含基本数据类型和引用数据类型。

基本数据类型如下图所示:

除此之外还有一个特殊的引用类型null,这种类型没有名称,所以无法声明null类型的变量,但是它可以转换任意一个引用数据类型。

整数类型

整数类...

java集合框架面试题

最新发布

07-27

回答: Java集合框架是一组设计良好的接口和类,用于支持对一组对象进行操作。它包括了Collection、Set、List和Map等基本接口和类。Collection接口代表一组对象,每个对象都是它的子元素。Set是不包含重复元素的Collection,而List是有顺序的Collection,可以包含重复元素。Map是可以将键映射到值的对象,键不能重复。\[1\]

在Java集合框架中,有一些线程安全的类和接口,如Vector和Hashtable,它们是旧的,从Java一诞生就提供的,因此是线程安全的。而ArrayList和HashMap是在Java2时才提供的,它们是线程不安全的。因此,在使用这些类时需要注意线程安全的问题。\[2\]

Java1.5引入了泛型,它允许我们为集合提供一个可以容纳的对象类型。这样,如果我们尝试添加其他类型的元素,编译时会报错,避免了在运行时出现ClassCastException的情况。泛型还使代码更整洁,不需要使用显式转换和instanceOf操作符。此外,泛型还带来了运行时的好处,因为它不会产生类型检查的字节码指令。\[3\]

Iterator是Java集合框架中的一个接口,它用于遍历集合中的元素。它提供了一种统一的方式来访问集合中的元素,无论集合的具体实现是什么。Enumeration是Iterator的前身,它是在Java集合框架之前引入的。它们的主要区别在于Iterator支持删除操作,而Enumeration不支持。此外,Iterator还提供了更多的方法,如hasNext()和next(),使得遍历集合更加方便。\[3\]

#### 引用[.reference_title]

- *1* *2* [Java面试常问集合框架22道面试真题(详解)](https://blog.csdn.net/NObug_369/article/details/106099293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]

- *3* [10道集合框架面试题(含解析),来看看你会多少](https://blog.csdn.net/weixin_62421895/article/details/126196672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]

[ .reference_list ]

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Galen-gao

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

137

原创

3万+

周排名

33万+

总排名

43万+

访问

等级

3926

积分

822

粉丝

369

获赞

160

评论

1616

收藏

私信

关注

热门文章

java集合Collection常用方法详解

111530

计算机网络数据是如何传输的?

25769

了解JS中的const

19398

使用java实现AES加密以及解决javax.crypto.BadPaddingException异常

18416

macos报 svn: error: The subversion command line tools are no longer provided by Xcode

15766

分类专栏

Flowable

1篇

Docker

7篇

rabbitmq

2篇

hadoop

3篇

Spring Security

4篇

nginx

3篇

C语言入门

2篇

ELK

1篇

JavaScript

3篇

Spring

12篇

Vue

4篇

开发异常

9篇

html

4篇

Oracle

4篇

Appium自动化测试

2篇

Scala

11篇

Struts2

1篇

分布式

1篇

redis

4篇

时间处理

3篇

Mysql

15篇

微服务

1篇

算法

1篇

计算机网络通信

3篇

面试

6篇

开发工具

11篇

消息中间件

2篇

Java基础

8篇

开发实用收集

6篇

读后感

3篇

最新评论

java8新特性-lambda表达式入门学习

后端码农进阶:

可以连着几个新特性博文照着敲下来,对Java8新特性有了不少理解。用在代码中漂亮了很多。

mac上安装brew出错curl: Failed to connect to raw.githubusercontent.com port 443解决方法

谦谦q:

谢谢第二条 非常有用

【IDEA】代码未提交(commit)拉取(pull) 远程代码导致代码全部丢失的bug

weixin_58589028:

Idea似乎可以直接把所有状态回溯到以前的某一个时间点,没有git那么麻烦

银联银行卡交换系统8583报文解析

Envymjp:

资源是空文件夹?

Flowable工作流实战快速入门(一)

成都最后的摆烂:

实际业务的写法和这个完全不同

大家在看

15 求int型正整数在内存中存储时1的个数 (no)详解

git:为常用指令配置别名结果command not fount

1

【Linux】Linux——Centos7安装

分析:一周销量破千万的《幻兽帕鲁》到底用的什么技术?

智慧文旅|AI数字人导览:让旅游体验不再局限于传统

131

最新文章

Docker入门之使用Dockerfile 构建镜像(七)

Docker版RabbitMQ安装延迟队列插件及延迟队列项目应用实战

创建并配置一个伪分布式Hadoop3.x版本集群(三)

2023年2篇

2022年13篇

2021年20篇

2020年37篇

2019年55篇

2018年10篇

目录

目录

分类专栏

Flowable

1篇

Docker

7篇

rabbitmq

2篇

hadoop

3篇

Spring Security

4篇

nginx

3篇

C语言入门

2篇

ELK

1篇

JavaScript

3篇

Spring

12篇

Vue

4篇

开发异常

9篇

html

4篇

Oracle

4篇

Appium自动化测试

2篇

Scala

11篇

Struts2

1篇

分布式

1篇

redis

4篇

时间处理

3篇

Mysql

15篇

微服务

1篇

算法

1篇

计算机网络通信

3篇

面试

6篇

开发工具

11篇

消息中间件

2篇

Java基础

8篇

开发实用收集

6篇

读后感

3篇

目录

评论 10

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

MyBatis中的collection两种使用方法_mapper collection column-CSDN博客

>

MyBatis中的collection两种使用方法_mapper collection column-CSDN博客

MyBatis中的collection两种使用方法

最新推荐文章于 2022-04-06 13:00:55 发布

lzxomg

最新推荐文章于 2022-04-06 13:00:55 发布

阅读量10w+

收藏

249

点赞数

73

分类专栏:

javaweb

mysql

java

文章标签:

sql

java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/lzxomg/article/details/89739651

版权

java

同时被 3 个专栏收录

20 篇文章

0 订阅

订阅专栏

javaweb

18 篇文章

3 订阅

订阅专栏

mysql

6 篇文章

0 订阅

订阅专栏

表关系: 问题表 1==>n 问题选项表, 需求: 查询问题时候,联查出来问题选项

//问题 实体类

public class Question {

private String id; //ID

private String content; //问题

private String type; //问题类型 1:单选,2:多选,3:问答

private Integer sort; //排序

private List options; //问题选项 *** 问题表里不需要有这个属性对应的字段

//...

}

//问题选项 实体类

public class QuestionOption{

private String id; //ID

private String qid; //问题ID *** 问题选项表里需要有这个属性对应的字段

private String content; //选项

private Integer sort; //排序

//...

}

方式一:

代码复用性高, 主表分页查询正确

QuestionMapper.xml

select="com.xxx.modules.xxx.mapper.QuestionOptionMapper.selectList" column="{qid=id,sort=sort}" />

QuestionOptionMapper.xml

方式二:

只需要执行一次sql查询, 主表分页查询不正确

QuestionMapper.xml

注意: 主子表要查询出来的字段名重复,要起别名

参考博客

优惠劵

lzxomg

关注

关注

73

点赞

249

收藏

觉得还不错?

一键收藏

知道了

38

评论

MyBatis中的collection两种使用方法

问题 1==>n 问题选项//问题 实体类public class Question { private String id; //ID private String content; //问题 private String type; //问题类型 1:单选,2:多选,3:问答 private Integer sort; //排序 private List<Questi...

复制链接

扫一扫

专栏目录

mybatis中<association> 和 <collection>

tanxinji的博客

12-01

1468

association用于配置一对一的关联关系,表示两个对象之间的关系是一对一的。例如,一个订单对象关联一个用户对象。

collection用于配置一对多的关联关系,表示一个对象关联多个对象。例如,一个部门对象关联多个员工对象。

mybatis collection 多条件查询的实现方法

09-09

主要介绍了mybatis collection 多条件查询的实现方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

38 条评论

您还未登录,请先

登录

后发表或查看评论

【Mybatis】 mapper XML 文件中使用 collection实现一对多关联

sayyy的专栏

09-04

5835

前言

Mybatis 一对一,使用 association 标签

Mybatis 一对多,使用 collection 标签

本文主要说明 collection 实现一对多关联。使用 association 实现一对一关联,参考这里 。

collection实现一对多关联

Mybatis中collection和association的使用区别详解

08-26

主要介绍了Mybatis中collection和association的使用区别详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Mybatis中Collection集合标签的使用详解

08-19

主要介绍了Mybatis中Collection集合标签的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

mybatis中mapper文件resultMap中collection和association的使用

09-27

mybatis中mapper文件resultMap中collection和association的使用,参考地址:https://blog.csdn.net/zhizhuodewo6/article/details/82863452

Mybaits中collection的用法详解

weixin_45001200的博客

06-26

1万+

作用:在Mybaits中collection标签是用来实现连表查询的。

使用的场景:collection的使用场景为1:n和n:n两种情况。

添加的内容:使用collection的时候需要在类中添加关联集合(查询哪个类就在哪个类中添加)。

一、第一种情况:

一对多: 一个班级有多个学生,一个学生只能有一个班级

查询信息:查询班级信息的时候返回学生信息

1、查询班级信息的时候返回学生信息,所以应该在班级类中添加一个学生的信息作为两个表之间的关联,又因为一个班级对应多个学生,所以关联的字段应该是集合。

这里的@

Mybatis的mapper.xml中的用法

朱哲的博客

06-05

2万+

在mapper.xml文件中,我们在使用collection时有两种用法。这里做一下简单记录:1、直接将collection集合元素的属性写为collection的字标签如下:<resultMap type="com.space.shiro.bean.User" id="userMap">

<id property="id" column="uid"/>

main方法 如何去掉http debug日志_在MyBatis中如何使用collection标签实现嵌套查询?...

weixin_39850981的博客

11-28

153

# 需求升级在上篇博客《一对多的关系,在MyBatis中如何映射?》中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色。因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限。# 实现方式因为我们需要使用到权限表的映射,所以我们需要先在SysPrivilegeMapper.xml中添加如下映射:

MyBatis中的collection两种常用使用方法(非常详细)

热门推荐

weixin_46645338的博客

04-06

3万+

MyBatis中的collection两种常用使用方法

码云MybatisDemo: 用来学习springboot整合mybatis (gitee.com)

collection主要是应对表关系是一对多的情况

查询的时候,用到联表去查询

接下来的小案例包括:市,学校,医院(随便写的),写一个最简单的demo

主要的功能就是查询出所有的市以及对应的市下面所有的学校和医院

实体类:医院

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Hospi

mybatis collection list string

04-26

NULL

博文链接:https://jaychang.iteye.com/blog/2357143

Spring+MyBatis使用collection标签的两种使用方法

最新发布

09-06

Spring Boot+MyBatis使用collection标签的两种使用方法

1. 方法一: 关联查询

2. 方法二: 嵌套select查询

博客地址:https://blog.csdn.net/u011974797/article/details/132709944

mybatis 中 foreach collection的用法小结(三种)

08-29

主要介绍了mybatis 中 foreach collection的用法小结(三种),需要的朋友可以参考下

Java指定时间执行任务

Talk is cheap. Show me the code.

07-07

1万+

用Timer和TimerTask

有如下好处:

1.当启动和取消任务时可以控制

2.第一次执行任务时可以指定你想要的delay时间

在实现时,Timer类可以调度任务,TimerTask则是通过在run()方法里实现具体任务。

Timer实例可以调度多任务,它是线程安全的。

当Timer的构造器被调用时,它创建了一个线程,这个线程可以用来调度任务。

下面是代码:

import ja

JAVA中的代码块、静态代码块、构造方法、main方法执行顺序

Talk is cheap. Show me the code.

07-08

8811

//Java中静态代码块,普通代码块,构造代码块区别及代码示例

//执行顺序:(优先级从高到低)静态代码块>mian方法>构造代码块>构造方法。

//其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。

1 普通代码块

普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”

public class

java继承中的构造方法

Talk is cheap. Show me the code.

07-07

3185

javase知识都快忘光了!! 以后一定要多写点儿总结!!!!

代码: SonClass.java

class FatherClass {

public FatherClass() {

System.out.println("Father--默认构造方法");

}

public FatherClass(int c) {

System.out.println("Father--有

java字符串表达式转换成可执行代码

Talk is cheap. Show me the code.

02-20

2922

在很多编程语言中都有eval函数,将"字符串"转换成执行的代码,并执行。

java中想要做这样的事情,需要引入其他"动态语言"才能实现类似效果。

比如可以 java调用内置的 jsEngine或groovyEngine。

需求比较简单,只是把字符串的数学公式求值,也可以使用 apache的commons-jexl3。

commons-jexl3 Demo

依赖

    2.2 collection有两种配置方式

      1.嵌套数据

      2.嵌套查询

      两种方式的主要区别在于collection,和sql语句处

      

      2.2.1.嵌套数据

//collection:

//在collection标签(即”多“)的次级标签中,直接配置List<>中对象的映射

//pojoA中"List pojoBList" 则property处填pojoBList

// 例子

//Role对象包括 roleId roleName字段 ,对应数据库中表的字段是role_id role_name

//SQl://只有一段

      2.2.2嵌套查询

//collection:

//不写次级标签,通过select实现嵌套查询

//pojoA中"List pojoBList" 则property处填pojoBList

//column 是传入的参数(目前我也未搞懂,可以直接照传入属性值对应的表字段填写)

//SQl:

//应当有两段://1.是查询resutMap的属性(PojoA的其他属性)的语句,其应将resultType换为resultMapper

//2.即为下列查询pojoB

(嵌套查询的collection 也还有两种,resultMap或者resultType 这里只写了后者,前者可在下列代码中的嵌套查询collectionPlanA中见到)

  配上一个没什么注释的xml文件代码--UserMapper.xml

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  

  

  

  

  

  

  

  

 

      错误欢迎指正,多多学习

posted @

2021-03-28 17:02 

毕竟是家黑店 

阅读(8906) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 毕竟是家黑店

Powered by .NET 8.0 on Kubernetes

mybatis的association以及collection的用法-阿里云开发者社区

mybatis的association以及collection的用法-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

数据库

文章

正文

mybatis的association以及collection的用法

2022-05-17

1060

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

在项目中,某些实体类之间肯定有关键关系,比如一对一,一对多等。在hibernate 中用one to one和one to many,而mybatis 中就用association和collection。association: 一对一关联(has one)collection:一对多关联(has many)注意,只有在做select查询时才会用到这两个标签,都有三种用法,且用法类似。

游客at5iuxxf3n33o

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

使用Collections - 廖雪峰的官方网站

使用Collections - 廖雪峰的官方网站

Index

廖雪峰的官方网站

Blog

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

More

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

 

Profile

Passkey

Sign Out

Sign In

English

简体中文

Index

Java教程

Java快速入门

Java简介

安装JDK

第一个Java程序

Java代码助手

使用IDE

使用IDE练习插件

Java程序基础

Java程序基本结构

变量和数据类型

整数运算

浮点数运算

布尔运算

字符和字符串

数组类型

流程控制

输入和输出

if判断

switch多重选择

while循环

do while循环

for循环

break和continue

数组操作

遍历数组

数组排序

多维数组

命令行参数

面向对象编程

面向对象基础

方法

构造方法

方法重载

继承

多态

抽象类

接口

静态字段和静态方法

作用域

内部类

classpath和jar

class版本

模块

Java核心类

字符串和编码

StringBuilder

StringJoiner

包装类型

JavaBean

枚举类

记录类

BigInteger

BigDecimal

常用工具类

异常处理

Java的异常

捕获异常

抛出异常

自定义异常

NullPointerException

使用断言

使用JDK Logging

使用Commons Logging

使用Log4j

使用SLF4J和Logback

反射

Class类

访问字段

调用方法

调用构造方法

获取继承关系

动态代理

注解

使用注解

定义注解

处理注解

泛型

什么是泛型

使用泛型

编写泛型

擦拭法

extends通配符

super通配符

泛型和反射

集合

Java集合简介

使用List

编写equals方法

使用Map

编写equals和hashCode

使用EnumMap

使用TreeMap

使用Properties

使用Set

使用Queue

使用PriorityQueue

使用Deque

使用Stack

使用Iterator

使用Collections

IO

File对象

InputStream

OutputStream

Filter模式

操作Zip

读取classpath资源

序列化

Reader

Writer

PrintStream和PrintWriter

使用Files

日期与时间

基本概念

Date和Calendar

LocalDateTime

ZonedDateTime

DateTimeFormatter

Instant

最佳实践

单元测试

编写JUnit测试

使用Fixture

异常测试

条件测试

参数化测试

正则表达式

正则表达式简介

匹配规则

复杂匹配规则

分组匹配

非贪婪匹配

搜索和替换

加密与安全

编码算法

哈希算法

BouncyCastle

Hmac算法

对称加密算法

口令加密算法

密钥交换算法

非对称加密算法

签名算法

数字证书

多线程

多线程基础

创建新线程

线程的状态

中断线程

守护线程

线程同步

同步方法

死锁

使用wait和notify

使用ReentrantLock

使用Condition

使用ReadWriteLock

使用StampedLock

使用Semaphore

使用Concurrent集合

使用Atomic

使用线程池

使用Future

使用CompletableFuture

使用ForkJoin

使用ThreadLocal

使用虚拟线程

Maven基础

Maven介绍

依赖管理

构建流程

使用插件

模块管理

使用mvnw

发布Artifact

网络编程

网络编程基础

TCP编程

UDP编程

发送Email

接收Email

HTTP编程

RMI远程调用

XML与JSON

XML简介

使用DOM

使用SAX

使用Jackson

使用JSON

JDBC编程

JDBC简介

JDBC查询

JDBC更新

JDBC事务

JDBC Batch

JDBC连接池

函数式编程

Lambda基础

方法引用

使用Stream

创建Stream

使用map

使用filter

使用reduce

输出集合

其他操作

设计模式

创建型模式

工厂方法

抽象工厂

生成器

原型

单例

结构型模式

适配器

桥接

组合

装饰器

外观

享元

代理

行为型模式

责任链

命令

解释器

迭代器

中介

备忘录

观察者

状态

策略

模板方法

访问者

Web开发

Web基础

Servlet入门

Servlet开发

Servlet进阶

重定向与转发

使用Session和Cookie

JSP开发

MVC开发

MVC高级开发

使用Filter

修改请求

修改响应

使用Listener

部署

Spring开发

IoC容器

IoC原理

装配Bean

使用Annotation配置

定制Bean

使用Resource

注入配置

使用条件装配

使用AOP

装配AOP

使用注解装配AOP

AOP避坑指南

访问数据库

使用JDBC

使用声明式事务

使用DAO

集成Hibernate

集成JPA

集成MyBatis

设计ORM

开发Web应用

使用Spring MVC

使用REST

集成Filter

使用Interceptor

处理CORS

国际化

异步处理

使用WebSocket

集成第三方组件

集成JavaMail

集成JMS

使用Scheduler

集成JMX

Spring Boot开发

第一个Spring Boot应用

使用开发者工具

打包Spring Boot应用

瘦身Spring Boot应用

使用Actuator

使用Profiles

使用Conditional

加载配置文件

禁用自动配置

添加Filter

集成第三方组件

集成Open API

访问Redis

集成Artemis

集成RabbitMQ

集成Kafka

Spring Cloud开发

项目架构设计

搭建项目框架

设计交易引擎

设计资产系统

设计订单系统

设计撮合引擎

设计清算系统

完成交易引擎

设计定序系统

设计API系统

设计行情系统

设计推送系统

编写UI

项目总结

关注公众号不定期领红包:

加入知识星球社群:

关注微博获取实时动态:

使用Collections

Last updated: ...

/

Reads: 1299545

Edit

Collections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。

注意Collections结尾多了一个s,不是Collection!

我们一般看方法名和参数就可以确认Collections提供的该方法的功能。例如,对于以下静态方法:

public static boolean addAll(Collection c, T... elements) { ... }

addAll()方法可以给一个Collection类型的集合添加若干元素。因为方法签名是Collection,所以我们可以传入List,Set等各种集合类型。

创建空集合

Collections提供了一系列方法来创建空集合:

创建空List:List emptyList()

创建空Map:Map emptyMap()

创建空Set:Set emptySet()

要注意到返回的空集合是不可变集合,无法向其中添加或删除元素。

此外,也可以用各个集合接口提供的of(T...)方法创建空集合。例如,以下创建空List的两个方法是等价的:

List list1 = List.of();

List list2 = Collections.emptyList();

创建单元素集合

Collections提供了一系列方法来创建一个单元素集合:

创建一个元素的List:List singletonList(T o)

创建一个元素的Map:Map singletonMap(K key, V value)

创建一个元素的Set:Set singleton(T o)

要注意到返回的单元素集合也是不可变集合,无法向其中添加或删除元素。

此外,也可以用各个集合接口提供的of(T...)方法创建单元素集合。例如,以下创建单元素List的两个方法是等价的:

List list1 = List.of("apple");

List list2 = Collections.singletonList("apple");

实际上,使用List.of(T...)更方便,因为它既可以创建空集合,也可以创建单元素集合,还可以创建任意个元素的集合:

List list1 = List.of(); // empty list

List list2 = List.of("apple"); // 1 element

List list3 = List.of("apple", "pear"); // 2 elements

List list4 = List.of("apple", "pear", "orange"); // 3 elements

排序

Collections可以对List进行排序。因为排序会直接修改List元素的位置,因此必须传入可变List:

import java.util.*;

----

public class Main {

public static void main(String[] args) {

List list = new ArrayList<>();

list.add("apple");

list.add("pear");

list.add("orange");

// 排序前:

System.out.println(list);

Collections.sort(list);

// 排序后:

System.out.println(list);

}

}

洗牌

Collections提供了洗牌算法,即传入一个有序的List,可以随机打乱List内部元素的顺序,效果相当于让计算机洗牌:

import java.util.*;

----

public class Main {

public static void main(String[] args) {

List list = new ArrayList<>();

for (int i=0; i<10; i++) {

list.add(i);

}

// 洗牌前:

System.out.println(list);

Collections.shuffle(list);

// 洗牌后:

System.out.println(list);

}

}

不可变集合

Collections还提供了一组方法把可变集合封装成不可变集合:

封装成不可变List:List unmodifiableList(List list)

封装成不可变Set:Set unmodifiableSet(Set set)

封装成不可变Map:Map unmodifiableMap(Map m)

这种封装实际上是通过创建一个代理对象,拦截掉所有修改方法实现的。我们来看看效果:

import java.util.*;

----

public class Main {

public static void main(String[] args) {

List mutable = new ArrayList<>();

mutable.add("apple");

mutable.add("pear");

// 变为不可变集合:

List immutable = Collections.unmodifiableList(mutable);

immutable.add("orange"); // UnsupportedOperationException!

}

}

然而,继续对原始的可变List进行增删是可以的,并且,会直接影响到封装后的“不可变”List:

import java.util.*;

----

public class Main {

public static void main(String[] args) {

List mutable = new ArrayList<>();

mutable.add("apple");

mutable.add("pear");

// 变为不可变集合:

List immutable = Collections.unmodifiableList(mutable);

mutable.add("orange");

System.out.println(immutable);

}

}

因此,如果我们希望把一个可变List封装成不可变List,那么,返回不可变List后,最好立刻扔掉可变List的引用,这样可以保证后续操作不会意外改变原始对象,从而造成“不可变”List变化了:

import java.util.*;

----

public class Main {

public static void main(String[] args) {

List mutable = new ArrayList<>();

mutable.add("apple");

mutable.add("pear");

// 变为不可变集合:

List immutable = Collections.unmodifiableList(mutable);

// 立刻扔掉mutable的引用:

mutable = null;

System.out.println(immutable);

}

}

线程安全集合

Collections还提供了一组方法,可以把线程不安全的集合变为线程安全的集合:

变为线程安全的List:List synchronizedList(List list)

变为线程安全的Set:Set synchronizedSet(Set s)

变为线程安全的Map:Map synchronizedMap(Map m)

多线程的概念我们会在后面讲。因为从Java 5开始,引入了更高效的并发集合类,所以上述这几个同步方法已经没有什么用了。

小结

Collections类提供了一组工具方法来方便使用集合类:

创建空集合;

创建单元素集合;

创建不可变集合;

排序/洗牌等操作。

Comments

Make a comment

Sign in to

make a comment

Index

Java教程

Java快速入门

Java简介

安装JDK

第一个Java程序

Java代码助手

使用IDE

使用IDE练习插件

Java程序基础

Java程序基本结构

变量和数据类型

整数运算

浮点数运算

布尔运算

字符和字符串

数组类型

流程控制

输入和输出

if判断

switch多重选择

while循环

do while循环

for循环

break和continue

数组操作

遍历数组

数组排序

多维数组

命令行参数

面向对象编程

面向对象基础

方法

构造方法

方法重载

继承

多态

抽象类

接口

静态字段和静态方法

作用域

内部类

classpath和jar

class版本

模块

Java核心类

字符串和编码

StringBuilder

StringJoiner

包装类型

JavaBean

枚举类

记录类

BigInteger

BigDecimal

常用工具类

异常处理

Java的异常

捕获异常

抛出异常

自定义异常

NullPointerException

使用断言

使用JDK Logging

使用Commons Logging

使用Log4j

使用SLF4J和Logback

反射

Class类

访问字段

调用方法

调用构造方法

获取继承关系

动态代理

注解

使用注解

定义注解

处理注解

泛型

什么是泛型

使用泛型

编写泛型

擦拭法

extends通配符

super通配符

泛型和反射

集合

Java集合简介

使用List

编写equals方法

使用Map

编写equals和hashCode

使用EnumMap

使用TreeMap

使用Properties

使用Set

使用Queue

使用PriorityQueue

使用Deque

使用Stack

使用Iterator

使用Collections

IO

File对象

InputStream

OutputStream

Filter模式

操作Zip

读取classpath资源

序列化

Reader

Writer

PrintStream和PrintWriter

使用Files

日期与时间

基本概念

Date和Calendar

LocalDateTime

ZonedDateTime

DateTimeFormatter

Instant

最佳实践

单元测试

编写JUnit测试

使用Fixture

异常测试

条件测试

参数化测试

正则表达式

正则表达式简介

匹配规则

复杂匹配规则

分组匹配

非贪婪匹配

搜索和替换

加密与安全

编码算法

哈希算法

BouncyCastle

Hmac算法

对称加密算法

口令加密算法

密钥交换算法

非对称加密算法

签名算法

数字证书

多线程

多线程基础

创建新线程

线程的状态

中断线程

守护线程

线程同步

同步方法

死锁

使用wait和notify

使用ReentrantLock

使用Condition

使用ReadWriteLock

使用StampedLock

使用Semaphore

使用Concurrent集合

使用Atomic

使用线程池

使用Future

使用CompletableFuture

使用ForkJoin

使用ThreadLocal

使用虚拟线程

Maven基础

Maven介绍

依赖管理

构建流程

使用插件

模块管理

使用mvnw

发布Artifact

网络编程

网络编程基础

TCP编程

UDP编程

发送Email

接收Email

HTTP编程

RMI远程调用

XML与JSON

XML简介

使用DOM

使用SAX

使用Jackson

使用JSON

JDBC编程

JDBC简介

JDBC查询

JDBC更新

JDBC事务

JDBC Batch

JDBC连接池

函数式编程

Lambda基础

方法引用

使用Stream

创建Stream

使用map

使用filter

使用reduce

输出集合

其他操作

设计模式

创建型模式

工厂方法

抽象工厂

生成器

原型

单例

结构型模式

适配器

桥接

组合

装饰器

外观

享元

代理

行为型模式

责任链

命令

解释器

迭代器

中介

备忘录

观察者

状态

策略

模板方法

访问者

Web开发

Web基础

Servlet入门

Servlet开发

Servlet进阶

重定向与转发

使用Session和Cookie

JSP开发

MVC开发

MVC高级开发

使用Filter

修改请求

修改响应

使用Listener

部署

Spring开发

IoC容器

IoC原理

装配Bean

使用Annotation配置

定制Bean

使用Resource

注入配置

使用条件装配

使用AOP

装配AOP

使用注解装配AOP

AOP避坑指南

访问数据库

使用JDBC

使用声明式事务

使用DAO

集成Hibernate

集成JPA

集成MyBatis

设计ORM

开发Web应用

使用Spring MVC

使用REST

集成Filter

使用Interceptor

处理CORS

国际化

异步处理

使用WebSocket

集成第三方组件

集成JavaMail

集成JMS

使用Scheduler

集成JMX

Spring Boot开发

第一个Spring Boot应用

使用开发者工具

打包Spring Boot应用

瘦身Spring Boot应用

使用Actuator

使用Profiles

使用Conditional

加载配置文件

禁用自动配置

添加Filter

集成第三方组件

集成Open API

访问Redis

集成Artemis

集成RabbitMQ

集成Kafka

Spring Cloud开发

项目架构设计

搭建项目框架

设计交易引擎

设计资产系统

设计订单系统

设计撮合引擎

设计清算系统

完成交易引擎

设计定序系统

设计API系统

设计行情系统

设计推送系统

编写UI

项目总结

廖雪峰的官方网站

©Copyright 2019-2021

Powered by iTranswarp

Feedback

License

collection是什么意思_collection的翻译_音标_读音_用法_例句_爱词霸在线词典

ection是什么意思_collection的翻译_音标_读音_用法_例句_爱词霸在线词典首页翻译背单词写作校对词霸下载用户反馈专栏平台登录collection是什么意思_collection用英语怎么说_collection的翻译_collection翻译成_collection的中文意思_collection怎么读,collection的读音,collection的用法,collection的例句翻译人工翻译试试人工翻译翻译全文简明柯林斯牛津collection高中/CET4/CET6/考研/GRE英 [kəˈlekʃn]美 [kəˈlekʃn]释义常用高考讲解n.收藏品; 作品集; 一堆/群; 系列时装; 收集; 聚集; 募捐点击 人工翻译,了解更多 人工释义词态变化复数: collections;实用场景例句全部收集采集征收收藏品募捐a stamp/coin, etc. collection邮票、硬币等收藏品牛津词典The painting comes from his private collection.这幅画来自他的私人收藏。牛津词典There was a collection of books and shoes on the floor.地板上有成堆的书和鞋。牛津词典There is always a strange collection of runners in the London Marathon.每次总会有一批稀奇古怪的选手参加伦敦马拉松比赛。牛津词典refuse/garbage collection废物 / 垃圾的收运牛津词典The last collection from this postbox is at 5.15.这邮筒最后一次收信的时间是5:15。牛津词典Your suit will be ready for collection on Tuesday.你的西服可在星期二领取。牛津词典The first stage in research is data collection.研究工作的第一步是收集资料。牛津词典a collection of stories by women writers女作家小说集牛津词典a house-to-house collection for Cancer Research为资助癌症研究挨门逐户进行的募捐牛津词典The total collection last week amounted to £250.上周的募捐总额达250英镑。牛津词典Armani's stunning new autumn collection款式新颖靓丽的阿玛尼秋装系列牛津词典I asked my headmaster if he could arrange a collection for a refugee charity.我问校长他是否能为救济难民的慈善机构组织一次募捐。柯林斯高阶英语词典...computer systems to speed up collection of information.加速信息收集的计算机系统柯林斯高阶英语词典Money can be sent to any one of 22,000 agents worldwide for collection.可以把钱汇给分布在世界各地的22,000名筹款代理人中的任何一位。柯林斯高阶英语词典Wye Lea is a collection of farm buildings that have been converted into an attractive complex.“怀河草地”是一处由农舍改造而成的赏心悦目的建筑群。柯林斯高阶英语词典The Brookings Institution has assembled a collection of essays from foreign affairs experts.布鲁金斯研究所将一批外交专家撰写的文章结集出版。柯林斯高阶英语词典Two years ago he published a collection of short stories called 'Facing The Music'...两年前,他出版了短篇小说集《勇敢面对》。柯林斯高阶英语词典The Art Gallery of Ontario has the world's largest collection of sculptures by Henry Moore...安大略美术馆是世界上收藏亨利·摩尔雕塑作品最多的美术馆。柯林斯高阶英语词典Robert's collection of prints and paintings has been bought over the years...这些年来,罗伯特逐渐收藏了一批版画和绘画作品。柯林斯高阶英语词典This painting is the jewel of my collection.这是我藏画中最珍贵的一幅.《简明英汉词典》He has a valuable collection of stamps.他收藏了很有价值的邮票.《简明英汉词典》Some time was required for the collection of her faculties.费了一些时间她才使心神镇定下来.《现代英汉综合大词典》Our neighbour has most generously swelled the collection with a gift of £25.我们的邻居真慷慨,拿出25英镑加在捐款里.《简明英汉词典》They attended a sneak preview of the winter fashion collection.他们参观了一次对内的冬季时装预展.《简明英汉词典》She proudly displayed her collection of ornaments.她得意扬扬地摆列出她的饰品集.《简明英汉词典》They have compiled a collection of Elementary Readings on the Natural Scieces to help young people in their studies.为了便于青少年学习,他们编了一套《自然科学小丛书》.《现代汉英综合大词典》收起实用场景例句真题例句全部四级六级高考考研The tests are designed to detect subtle ( ' , 细微的) changes in mental function, and involve solving puzzles, recalling words and details from stories, and identifying patterns in collections of letters and symbols.出自-2016年6月阅读原文As a result, the museum plans to expand the hall, as well as add to its ancient birds collection.2019年12月四级真题(第一套)听力 Section AIn 2004, the completed CIS tower became Europe's largest collection of vertical solar panels.2018年6月四级真题(第三套)阅读 Section AIn the meantime, the current collection will be closed.2019年12月四级真题(第一套)听力 Section AThe British traveler Charles Thompson spoke for many Grand Tourists when in 1744 he described himself as being impatiently desirous of viewing a country so famous in history, a country which once gave laws to the world, and which is at present the greatest school of music and painting, contains the noblest productions of sculpture and architecture, and is filled with cabinets of rarities, and collections of all kinds of historical relics.出自-2017年6月阅读原文Since there were few museums anywhere in Europe before the close of the eighteenth century, Grand Tourists often saw paintings and sculptures by gaining admission to private collections, and many were eager to acquire examples of Greco-Roman and Italian art for their own collections.出自-2017年6月阅读原文Private collections were of greater variety.出自-2017年6月阅读原文We're taking up a collection to buy a gift for Gemma.出自-2012年6月听力原文He has a fairly large collection of quality trucks.出自-2010年12月听力原文For my senior collection at fashion design school, I decided to try and 3D print an entire fashion collection from my home.2016年12月六级真题(第二套)听力 Section CSmartphone-based data collection comes at an appropriate time in the evolution of psychological science Today, the field is in transition, moving away from a focus on laboratory studies with undergraduate participants towards more complex, real-world situ2018年12月六级真题(第一套)阅读 Section CSmartphone-based data collection comes at an appropriate time in the evolution of psychological science.2018年12月六级真题(第一套)阅读 Section CTwo or more satellites slamming into each other could create many more out-of-control bits that would pose even more hazards to the growing collection of satellites in space.2019年6月六级真题(第二套)阅读 Section CA new collection of photos brings an unsuccessful antArctic voyage back to life.2016年高考英语全国卷2 阅读理解 阅读D 原文Collection consists of masterworks in sculpture, colored glass, and precious objects from Europe dating from about the 9th to the 15th century.2018年高考英语江苏卷 阅读理解 阅读A 原文If you want to have a real orchard experience, try visiting the national fruit collection at brogdale, near faversham in kent.2016年高考英语全国卷3 阅读理解 阅读C 原文It sells excellent European glass collections.2018年高考英语江苏卷 阅读理解 阅读A 选项Reaching over to my collection of CDs, I blindly took one out, put it in the machine and played it.2015年高考英语湖南卷 完形填空 原文The attraction of the cloisters museum and gardens lies in the fact that its collections date from the middle ages.2018年高考英语江苏卷 阅读理解 阅读A 题设The national park has a large collection of wildlife, ranging from butterflies to elephants.2017年高考英语北京卷 单项填空 原文Within days, Patrick's collection was replaced.2016年高考英语北京卷 阅读理解 阅读B 原文Supporters of the theory viewed culture as a collection of integrated parts that work together to keep a society functioning.出自-2009年考研阅读原文Critics also argue that commercial genetic testing is only as good as the reference collections to which a sample is compared.出自-2009年考研阅读原文Yet a considerable number of the most significant collections of criticism published in the 20th century consisted in large part of newspaper reviews.出自-2010年考研阅读原文The second half of the 20th century saw a collection of geniuses, warriors, entrepreneurs and visionaries labour to create a fabulous machine that could function as a typewriter and printing press, studio and theatre, paintbrush and gallery, piano and radio, the mail as well as the mail carrier.出自-2012年考研阅读原文Though several fast-fashion companies have made efforts to curb their impact on labor and the environment – including H&M, with its green Conscious Collection line –Cline believes lasting change can only be effected by the customer.出自-2013年考研阅读原文Derek Jarman's yellow-tinted film Towards Avebury, a collection of long, mostly still shots of the wiltshire landscape, evokes a tradition of English landscape painting stretching from Samuel Palmer to Paul Nash.2014年考研真题(英语二)阅读理解 Section ⅡThe second half of the 20th century saw a collection of geniuses, warriors, entrepreneurs and visionaries labour to create a fabulous machine that could function as a typewriter and printing press, studio and theatre, paintbrush and gallery, piano and rad2012年考研真题(英语一)阅读理解 Section ⅡThough several fast-fashion companies have made efforts to curb their impact on labor and the environment -- including H&M, with its green Conscious Collection line -- Cline believes lasting change can only be effected by the customer.2013年考研真题(英语一)阅读理解 Section Ⅱ收起真题例句英英释义Noun1. several things grouped together or considered as a whole2. a publication containing a variety of works3. request for a sum of money;"an appeal to raise money for starving children"4. the act of gathering something together收起英英释义词根词缀词根: lect1. =choose,gather,表示"选择,收集"; 2. =speak,read,表示"讲,读,说"adj.collective 集体的,共同的 collect[v.收集]+ive……的→adj.集体的,共同的 n.集体intellectual 智力的,理智的,有理解力的intellect[n.理智,智力,才智]+ual……的→n.知识分子 adj.智力的,理智的,有理解力的n.collection 收藏[品],收集[物]collect[v.收集]+ion表名词→n.收藏[品],收集[物]collective 集体collect[v.收集]+ive……的→adj.集体的,共同的 n.集体election 选举,选择权;当选elect[v.选举,推选;选择,作出选择]+ion表名词→n.选举,选择权;当选elector 有选举权的人,选举人,竞选人elect[v.选举,推选;选择,作出选择]+or人→n.有选举权的人,选举人,竞选人elite [集合名词]精华;精锐;中坚分子;精英el=elect[v.选举,推选;选择,作出选择]+ite人→选出的人→精英intellect 理智,智力,才智intel=inter在……中间+lect选择,收集→在中间选出的人→智者intellectual 知识分子 intellect[n.理智,智力,才智]+ual……的→n.知识分子 adj.智力的,理智的,有理解力的recollection 回忆recollect[v.回忆,想起,记起,忆起,记得]+ion表名词→n.回忆selection 选择,挑选;选集,精选物select[v.选出]+ion表名词→n.选择,挑选;选集,精选物acrolect 上层方言acro高+lect讲,读,说→高层说的话dialect 方言dia对着+lect讲,读,说→两个对着说→方言idiolect 个人习语idio个人的+lect说→个人说的话n.&v.neglect 忽视;疏忽,漏做,忽略neg没有+lect选择,收集→没有选出→疏忽lecture 演讲,讲课lect讲,读,说+ure表名词→n.&v.演讲,讲课v.collect 收集col共同+lect选择→放在一起选择→收集elect 选举,推选;选择,作出选择e出+lect选择,收集→选出recollect 回忆,想起,记起,忆起,记得re重新+collect[v.收集]→重新收集[集中]→回想到select 选出se分开+lect选→选出分开同义词n.捐款,募捐offeringcontributionoffertoryoblationalmstithedonationsubscriptionn.收集品,采集assortmentn.汇集,编集corpusworkscollectaneagarlandcollectedcompilationanthologyanalectsn.积累,收集hoardgatheringstockpilestorefundaccumulationclustersupplyheappilestockassortmentmasscumulationn.聚众,群集gatheringconfluenceherdmusterbodymultitudeassemblycrowdcongregationconcoursegroupflockthrongswarmhostdroven.聚集,集中concentrationaggregationconglomerationassemblageamassment其他释义inventoryvarietymenagerieprovisionmuseumnumbertissueselectiontreasure反义词delivery行业词典动物学标本收藏   医学采集   法律银行   代收   托收   释义词态变化实用场景例句真题例句英英释义词根词缀同义词反义词行