详解Java集合(含代码输出结果)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
全局流量管理 GTM,标准版 1个月
简介: 我们常用的集合List Set Map各有优点缺点实现类无非ArrayList/LinkedList/HashSet/TreeSet/LinkedHashSet/HashMap/TreeMap/LinkedHashMap

我们常用的集合

List Set Map

各有优点缺点

实现类无非ArrayList/LinkedList/HashSet/TreeSet/LinkedHashSet/HashMap/TreeMap/LinkedHashMap

ArrayList底层数组,查询快,增删慢;LinkedList底层双链表,查询慢,增删快。


ArrayList直接根据数组的标号去查单个就可以了,所以查询快。但是如果删除了2,这是一个步骤,然后3和4要向前移动,这又是两步,所以删除慢,增加也是如此。

LinkedList是双链表结构,查询要从头到尾去查,删除只需把元素前下标和后下标断开,让前元素和后元素相连即可。所以查询慢,增删快。


ArrayList复杂度O(1),底层数组; LinkedList复杂度O(n),底层链表

LinkedList比ArrayList更占内存。


HashSet、HashMap执行的速度很快,但是不保证插入顺序,可以保证遍历输出顺序

TreeSet、TreeMap按照比较结果的升序保存键

LinkedHashSet、LinedHashMap按照插入顺序保存、可以保证插入顺序


最后续上代码

test

package com.ruoyi.system.test;
import com.ruoyi.system.api.domain.SysFile;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.*;
/**
 * @author kegekeqi
 * @version 1.0
 * @date 2021-11-14 11:24
 */
@SpringBootTest
public class CollectionsTest {
  @Test
  public void test() {
    System.out.println(fill(new ArrayList<>()));
    System.out.println(fill(new LinkedList<>()));
    System.out.println(fill(new HashSet<>()));
    System.out.println(fill(new TreeSet<>()));
    System.out.println(fill(new LinkedHashSet<>()));
    System.out.println(fill(new HashMap<>()));
    System.out.println(fill(new TreeMap<>()));
    System.out.println(fill(new LinkedHashMap<>()));
  }
  static Collection fill(Collection<String> collection) {
    collection.add("rat");
    collection.add("cat");
    collection.add("dog");
    collection.add("dog");
    return collection;
  }
  static Map fill(Map<String, Object> map) {
    SysFile SysFileOne = new SysFile();
    SysFileOne.setName("Fuzzy");
    map.put("rat", SysFileOne);
    SysFile SysFileTwo = new SysFile();
    SysFileTwo.setName("Rags");
    map.put("cat", SysFileTwo);
    SysFile SysFileThree = new SysFile();
    SysFileThree.setName("Bosco");
    map.put("dog", SysFileThree);
    SysFile SysFileFour = new SysFile();
    SysFileFour.setName("Spot");
    map.put("dog", SysFileFour);
    return map;
  }
}

实体类

package com.ruoyi.system.api.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
 * 文件信息
 * 
 * @author ruoyi
 */
public class SysFile
{
    /**
     * 文件名称
     */
    private String name;
    /**
     * 文件地址
     */
    private String url;
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getUrl()
    {
        return url;
    }
    public void setUrl(String url)
    {
        this.url = url;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("name", getName())
            .append("url", getUrl())
            .toString();
    }
}

输出结果

"D:\Program Files\Java\jdk1.8.0_251\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:D:\idea2017.2.5\ideaIU-2017.2.5.win\lib\idea_rt.jar=51618:D:\idea2017.2.5\ideaIU-2017.2.5.win\bin -Dfile.encoding=UTF-8 -classpath "D:\idea2017.2.5\ideaIU-2017.2.5.win\lib\idea_rt.jar;D:\idea2017.2.5\ideaIU-2017.2.5.win\plugins\junit\lib\junit-rt.jar;D:\idea2017.2.5\ideaIU-2017.2.5.win\plugins\junit\lib\junit5-rt.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_251\jre\lib\rt.jar;D:\code\RuoYi-Cloud\ruoyi-modules\ruoyi-system\target\classes;D:\repository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2021.1\spring-cloud-starter-alibaba-nacos-discovery-2021.1.jar;D:\repository\com\alibaba\cloud\spring-cloud-alibaba-commons\2021.1\spring-cloud-alibaba-commons-2021.1.jar;D:\repository\com\alibaba\nacos\nacos-client\2.0.3\nacos-client-2.0.3.jar;D:\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\repository\com\fasterxml\jackson\core\jackson-core\2.12.5\jackson-core-2.12.5.jar;D:\repository\com\fasterxml\jackson\core\jackson-databind\2.12.5\jackson-databind-2.12.5.jar;D:\repository\com\fasterxml\jackson\core\jackson-annotations\2.12.5\jackson-annotations-2.12.5.jar;D:\repository\org\apache\httpcomponents\httpasyncclient\4.1.4\httpasyncclient-4.1.4.jar;D:\repository\org\apache\httpcomponents\httpcore\4.4.14\httpcore-4.4.14.jar;D:\repository\org\apache\httpcomponents\httpcore-nio\4.4.14\httpcore-nio-4.4.14.jar;D:\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\repository\org\reflections\reflections\0.9.11\reflections-0.9.11.jar;D:\repository\com\google\guava\guava\20.0\guava-20.0.jar;D:\repository\org\javassist\javassist\3.21.0-GA\javassist-3.21.0-GA.jar;D:\repository\io\prometheus\simpleclient\0.10.0\simpleclient-0.10.0.jar;D:\repository\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;D:\repository\com\alibaba\spring\spring-context-support\1.0.10\spring-context-support-1.0.10.jar;D:\repository\org\springframework\cloud\spring-cloud-commons\3.0.4\spring-cloud-commons-3.0.4.jar;D:\repository\org\springframework\security\spring-security-crypto\5.5.3\spring-security-crypto-5.5.3.jar;D:\repository\org\springframework\cloud\spring-cloud-context\3.0.4\spring-cloud-context-3.0.4.jar;D:\repository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-config\2021.1\spring-cloud-starter-alibaba-nacos-config-2021.1.jar;D:\repository\com\alibaba\cloud\spring-cloud-starter-alibaba-sentinel\2021.1\spring-cloud-starter-alibaba-sentinel-2021.1.jar;D:\repository\com\alibaba\csp\sentinel-transport-simple-http\1.8.0\sentinel-transport-simple-http-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-transport-common\1.8.0\sentinel-transport-common-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-datasource-extension\1.8.0\sentinel-datasource-extension-1.8.0.jar;D:\repository\com\alibaba\fastjson\1.2.78\fastjson-1.2.78.jar;D:\repository\com\alibaba\csp\sentinel-annotation-aspectj\1.8.0\sentinel-annotation-aspectj-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-core\1.8.0\sentinel-core-1.8.0.jar;D:\repository\org\aspectj\aspectjrt\1.9.7\aspectjrt-1.9.7.jar;D:\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\repository\com\alibaba\cloud\spring-cloud-circuitbreaker-sentinel\2021.1\spring-cloud-circuitbreaker-sentinel-2021.1.jar;D:\repository\com\alibaba\csp\sentinel-reactor-adapter\1.8.0\sentinel-reactor-adapter-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-spring-webflux-adapter\1.8.0\sentinel-spring-webflux-adapter-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-spring-webmvc-adapter\1.8.0\sentinel-spring-webmvc-adapter-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-parameter-flow-control\1.8.0\sentinel-parameter-flow-control-1.8.0.jar;D:\repository\com\googlecode\concurrentlinkedhashmap\concurrentlinkedhashmap-lru\1.4.2\concurrentlinkedhashmap-lru-1.4.2.jar;D:\repository\com\alibaba\csp\sentinel-cluster-server-default\1.8.0\sentinel-cluster-server-default-1.8.0.jar;D:\repository\com\alibaba\csp\sentinel-cluster-common-default\1.8.0\sentinel-cluster-common-default-1.8.0.jar;D:\repository\io\netty\netty-handler\4.1.69.Final\netty-handler-4.1.69.Final.jar;D:\repository\io\netty\netty-common\4.1.69.Final\netty-common-4.1.69.Final.jar;D:\repository\io\netty\netty-resolver\4.1.69.Final\netty-resolver-4.1.69.Final.jar;D:\repository\io\netty\netty-buffer\4.1.69.Final\netty-buffer-4.1.69.Final.jar;D:\repository\io\netty\netty-transport\4.1.69.Final\netty-transport-4.1.69.Final.jar;D:\repository\io\netty\netty-codec\4.1.69.Final\netty-codec-4.1.69.Final.jar;D:\repository\com\alibaba\csp\sentinel-cluster-client-default\1.8.0\sentinel-cluster-client-default-1.8.0.jar;D:\repository\com\alibaba\cloud\spring-cloud-alibaba-sentinel-datasource\2021.1\spring-cloud-alibaba-sentinel-datasource-2021.1.jar;D:\repository\org\springframework\boot\spring-boot-starter-actuator\2.5.6\spring-boot-starter-actuator-2.5.6.jar;D:\repository\org\springframework\boot\spring-boot-starter\2.5.6\spring-boot-starter-2.5.6.jar;D:\repository\org\springframework\boot\spring-boot-autoconfigure\2.5.6\spring-boot-autoconfigure-2.5.6.jar;D:\repository\org\springframework\boot\spring-boot-starter-logging\2.5.6\spring-boot-starter-logging-2.5.6.jar;D:\repository\ch\qos\logback\logback-classic\1.2.6\logback-classic-1.2.6.jar;D:\repository\ch\qos\logback\logback-core\1.2.6\logback-core-1.2.6.jar;D:\repository\org\apache\logging\log4j\log4j-to-slf4j\2.14.1\log4j-to-slf4j-2.14.1.jar;D:\repository\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;D:\repository\org\slf4j\jul-to-slf4j\1.7.32\jul-to-slf4j-1.7.32.jar;D:\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\repository\org\springframework\spring-core\5.3.12\spring-core-5.3.12.jar;D:\repository\org\springframework\spring-jcl\5.3.12\spring-jcl-5.3.12.jar;D:\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.5.6\spring-boot-actuator-autoconfigure-2.5.6.jar;D:\repository\org\springframework\boot\spring-boot-actuator\2.5.6\spring-boot-actuator-2.5.6.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.5\jackson-datatype-jsr310-2.12.5.jar;D:\repository\io\micrometer\micrometer-core\1.7.5\micrometer-core-1.7.5.jar;D:\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;D:\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\repository\io\springfox\springfox-swagger-ui\3.0.0\springfox-swagger-ui-3.0.0.jar;D:\repository\io\springfox\springfox-spring-webmvc\3.0.0\springfox-spring-webmvc-3.0.0.jar;D:\repository\io\springfox\springfox-spi\3.0.0\springfox-spi-3.0.0.jar;D:\repository\io\springfox\springfox-schema\3.0.0\springfox-schema-3.0.0.jar;D:\repository\io\springfox\springfox-core\3.0.0\springfox-core-3.0.0.jar;D:\repository\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;D:\repository\io\springfox\springfox-spring-web\3.0.0\springfox-spring-web-3.0.0.jar;D:\repository\io\github\classgraph\classgraph\4.8.83\classgraph-4.8.83.jar;D:\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\repository\org\slf4j\slf4j-api\1.7.32\slf4j-api-1.7.32.jar;D:\repository\org\springframework\plugin\spring-plugin-core\2.0.0.RELEASE\spring-plugin-core-2.0.0.RELEASE.jar;D:\repository\org\springframework\spring-beans\5.3.12\spring-beans-5.3.12.jar;D:\repository\org\springframework\spring-aop\5.3.12\spring-aop-5.3.12.jar;D:\repository\org\springframework\plugin\spring-plugin-metadata\2.0.0.RELEASE\spring-plugin-metadata-2.0.0.RELEASE.jar;D:\repository\mysql\mysql-connector-java\8.0.27\mysql-connector-java-8.0.27.jar;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-datasource\target\classes;D:\repository\com\alibaba\druid-spring-boot-starter\1.2.8\druid-spring-boot-starter-1.2.8.jar;D:\repository\com\alibaba\druid\1.2.8\druid-1.2.8.jar;D:\repository\com\baomidou\dynamic-datasource-spring-boot-starter\3.4.1\dynamic-datasource-spring-boot-starter-3.4.1.jar;D:\repository\org\springframework\boot\spring-boot-starter-jdbc\2.5.6\spring-boot-starter-jdbc-2.5.6.jar;D:\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\repository\org\springframework\spring-jdbc\5.3.12\spring-jdbc-5.3.12.jar;D:\repository\org\springframework\spring-tx\5.3.12\spring-tx-5.3.12.jar;D:\repository\org\springframework\boot\spring-boot-starter-aop\2.5.6\spring-boot-starter-aop-2.5.6.jar;D:\repository\com\alibaba\cloud\spring-cloud-starter-alibaba-seata\2021.1\spring-cloud-starter-alibaba-seata-2021.1.jar;D:\repository\io\seata\seata-spring-boot-starter\1.3.0\seata-spring-boot-starter-1.3.0.jar;D:\repository\io\seata\seata-all\1.3.0\seata-all-1.3.0.jar;D:\repository\io\netty\netty-all\4.1.69.Final\netty-all-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-dns\4.1.69.Final\netty-codec-dns-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-haproxy\4.1.69.Final\netty-codec-haproxy-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-http\4.1.69.Final\netty-codec-http-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-http2\4.1.69.Final\netty-codec-http2-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-memcache\4.1.69.Final\netty-codec-memcache-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-mqtt\4.1.69.Final\netty-codec-mqtt-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-redis\4.1.69.Final\netty-codec-redis-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-smtp\4.1.69.Final\netty-codec-smtp-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-socks\4.1.69.Final\netty-codec-socks-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-stomp\4.1.69.Final\netty-codec-stomp-4.1.69.Final.jar;D:\repository\io\netty\netty-codec-xml\4.1.69.Final\netty-codec-xml-4.1.69.Final.jar;D:\repository\com\fasterxml\aalto-xml\1.0.0\aalto-xml-1.0.0.jar;D:\repository\org\codehaus\woodstox\stax2-api\4.0.0\stax2-api-4.0.0.jar;D:\repository\io\netty\netty-handler-proxy\4.1.69.Final\netty-handler-proxy-4.1.69.Final.jar;D:\repository\io\netty\netty-resolver-dns\4.1.69.Final\netty-resolver-dns-4.1.69.Final.jar;D:\repository\io\netty\netty-transport-rxtx\4.1.69.Final\netty-transport-rxtx-4.1.69.Final.jar;D:\repository\org\rxtx\rxtx\2.1.7\rxtx-2.1.7.jar;D:\repository\io\netty\netty-transport-sctp\4.1.69.Final\netty-transport-sctp-4.1.69.Final.jar;D:\repository\io\netty\netty-transport-udt\4.1.69.Final\netty-transport-udt-4.1.69.Final.jar;D:\repository\com\barchart\udt\barchart-udt-bundle\2.3.0\barchart-udt-bundle-2.3.0.jar;D:\repository\io\netty\netty-transport-native-epoll\4.1.69.Final\netty-transport-native-epoll-4.1.69.Final.jar;D:\repository\io\netty\netty-transport-native-unix-common\4.1.69.Final\netty-transport-native-unix-common-4.1.69.Final.jar;D:\repository\io\netty\netty-transport-native-kqueue\4.1.69.Final\netty-transport-native-kqueue-4.1.69.Final.jar;D:\repository\io\netty\netty-resolver-dns-native-macos\4.1.69.Final\netty-resolver-dns-native-macos-4.1.69.Final.jar;D:\repository\io\netty\netty-transport-native-epoll\4.1.69.Final\netty-transport-native-epoll-4.1.69.Final-linux-x86_64.jar;D:\repository\io\netty\netty-transport-native-epoll\4.1.69.Final\netty-transport-native-epoll-4.1.69.Final-linux-aarch_64.jar;D:\repository\io\netty\netty-transport-native-kqueue\4.1.69.Final\netty-transport-native-kqueue-4.1.69.Final-osx-x86_64.jar;D:\repository\io\netty\netty-transport-native-kqueue\4.1.69.Final\netty-transport-native-kqueue-4.1.69.Final-osx-aarch_64.jar;D:\repository\io\netty\netty-resolver-dns-native-macos\4.1.69.Final\netty-resolver-dns-native-macos-4.1.69.Final-osx-x86_64.jar;D:\repository\io\netty\netty-resolver-dns-native-macos\4.1.69.Final\netty-resolver-dns-native-macos-4.1.69.Final-osx-aarch_64.jar;D:\repository\com\typesafe\config\1.2.1\config-1.2.1.jar;D:\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\repository\org\apache\commons\commons-pool2\2.10.0\commons-pool2-2.10.0.jar;D:\repository\commons-pool\commons-pool\1.6\commons-pool-1.6.jar;D:\repository\com\google\protobuf\protobuf-java\3.7.1\protobuf-java-3.7.1.jar;D:\repository\cglib\cglib\3.1\cglib-3.1.jar;D:\repository\org\ow2\asm\asm\4.2\asm-4.2.jar;D:\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\repository\com\github\ben-manes\caffeine\caffeine\2.9.2\caffeine-2.9.2.jar;D:\repository\org\checkerframework\checker-qual\3.10.0\checker-qual-3.10.0.jar;D:\repository\com\google\errorprone\error_prone_annotations\2.5.1\error_prone_annotations-2.5.1.jar;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-datascope\target\classes;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-security\target\classes;D:\repository\org\springframework\spring-webmvc\5.3.12\spring-webmvc-5.3.12.jar;D:\repository\org\springframework\spring-expression\5.3.12\spring-expression-5.3.12.jar;D:\code\RuoYi-Cloud\ruoyi-api\ruoyi-api-system\target\classes;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-core\target\classes;D:\repository\org\springframework\cloud\spring-cloud-starter-openfeign\3.0.4\spring-cloud-starter-openfeign-3.0.4.jar;D:\repository\org\springframework\cloud\spring-cloud-openfeign-core\3.0.4\spring-cloud-openfeign-core-3.0.4.jar;D:\repository\io\github\openfeign\form\feign-form-spring\3.8.0\feign-form-spring-3.8.0.jar;D:\repository\io\github\openfeign\form\feign-form\3.8.0\feign-form-3.8.0.jar;D:\repository\io\github\openfeign\feign-core\10.12\feign-core-10.12.jar;D:\repository\io\github\openfeign\feign-slf4j\10.12\feign-slf4j-10.12.jar;D:\repository\org\springframework\cloud\spring-cloud-starter-loadbalancer\3.0.4\spring-cloud-starter-loadbalancer-3.0.4.jar;D:\repository\org\springframework\cloud\spring-cloud-loadbalancer\3.0.4\spring-cloud-loadbalancer-3.0.4.jar;D:\repository\io\projectreactor\addons\reactor-extra\3.4.5\reactor-extra-3.4.5.jar;D:\repository\org\springframework\boot\spring-boot-starter-cache\2.5.6\spring-boot-starter-cache-2.5.6.jar;D:\repository\com\stoyanr\evictor\1.0.0\evictor-1.0.0.jar;D:\repository\org\springframework\spring-context-support\5.3.12\spring-context-support-5.3.12.jar;D:\repository\com\alibaba\transmittable-thread-local\2.12.2\transmittable-thread-local-2.12.2.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.4.0\pagehelper-spring-boot-starter-1.4.0.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.0\mybatis-spring-boot-starter-2.2.0.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.0\mybatis-spring-boot-autoconfigure-2.2.0.jar;D:\repository\org\mybatis\mybatis\3.5.7\mybatis-3.5.7.jar;D:\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.4.0\pagehelper-spring-boot-autoconfigure-1.4.0.jar;D:\repository\com\github\pagehelper\pagehelper\5.3.0\pagehelper-5.3.0.jar;D:\repository\com\github\jsqlparser\jsqlparser\4.2\jsqlparser-4.2.jar;D:\repository\org\springframework\boot\spring-boot-starter-validation\2.5.6\spring-boot-starter-validation-2.5.6.jar;D:\repository\org\hibernate\validator\hibernate-validator\6.2.0.Final\hibernate-validator-6.2.0.Final.jar;D:\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\repository\org\jboss\logging\jboss-logging\3.4.2.Final\jboss-logging-3.4.2.Final.jar;D:\repository\io\jsonwebtoken\jjwt\0.9.1\jjwt-0.9.1.jar;D:\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;D:\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;D:\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;D:\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;D:\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;D:\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;D:\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;D:\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;D:\repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;D:\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;D:\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-redis\target\classes;D:\repository\org\springframework\boot\spring-boot-starter-data-redis\2.5.6\spring-boot-starter-data-redis-2.5.6.jar;D:\repository\org\springframework\data\spring-data-redis\2.5.6\spring-data-redis-2.5.6.jar;D:\repository\org\springframework\data\spring-data-keyvalue\2.5.6\spring-data-keyvalue-2.5.6.jar;D:\repository\org\springframework\data\spring-data-commons\2.5.6\spring-data-commons-2.5.6.jar;D:\repository\org\springframework\spring-oxm\5.3.12\spring-oxm-5.3.12.jar;D:\repository\io\lettuce\lettuce-core\6.1.5.RELEASE\lettuce-core-6.1.5.RELEASE.jar;D:\repository\io\projectreactor\reactor-core\3.4.11\reactor-core-3.4.11.jar;D:\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-log\target\classes;D:\code\RuoYi-Cloud\ruoyi-common\ruoyi-common-swagger\target\classes;D:\repository\org\springframework\boot\spring-boot-starter-web\2.5.6\spring-boot-starter-web-2.5.6.jar;D:\repository\org\springframework\boot\spring-boot-starter-json\2.5.6\spring-boot-starter-json-2.5.6.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.5\jackson-datatype-jdk8-2.12.5.jar;D:\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.5\jackson-module-parameter-names-2.12.5.jar;D:\repository\org\springframework\boot\spring-boot-starter-tomcat\2.5.6\spring-boot-starter-tomcat-2.5.6.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.54\tomcat-embed-core-9.0.54.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.54\tomcat-embed-el-9.0.54.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.54\tomcat-embed-websocket-9.0.54.jar;D:\repository\org\springframework\spring-web\5.3.12\spring-web-5.3.12.jar;D:\repository\io\springfox\springfox-swagger2\3.0.0\springfox-swagger2-3.0.0.jar;D:\repository\io\springfox\springfox-swagger-common\3.0.0\springfox-swagger-common-3.0.0.jar;D:\repository\io\swagger\core\v3\swagger-annotations\2.1.2\swagger-annotations-2.1.2.jar;D:\repository\io\springfox\springfox-spring-webflux\3.0.0\springfox-spring-webflux-3.0.0.jar;D:\repository\io\swagger\swagger-annotations\1.6.2\swagger-annotations-1.6.2.jar;D:\repository\io\swagger\swagger-models\1.6.2\swagger-models-1.6.2.jar;D:\repository\org\mapstruct\mapstruct\1.3.1.Final\mapstruct-1.3.1.Final.jar;D:\repository\junit\junit\4.12\junit-4.12.jar;D:\repository\org\hamcrest\hamcrest-core\2.2\hamcrest-core-2.2.jar;D:\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;D:\repository\org\springframework\boot\spring-boot-test\2.3.4.RELEASE\spring-boot-test-2.3.4.RELEASE.jar;D:\repository\org\springframework\boot\spring-boot\2.5.6\spring-boot-2.5.6.jar;D:\repository\org\springframework\spring-context\5.3.12\spring-context-5.3.12.jar;D:\repository\org\springframework\cloud\spring-cloud-starter-bootstrap\3.0.4\spring-cloud-starter-bootstrap-3.0.4.jar;D:\repository\org\springframework\cloud\spring-cloud-starter\3.0.4\spring-cloud-starter-3.0.4.jar;D:\repository\org\springframework\security\spring-security-rsa\1.0.10.RELEASE\spring-security-rsa-1.0.10.RELEASE.jar;D:\repository\org\bouncycastle\bcpkix-jdk15on\1.68\bcpkix-jdk15on-1.68.jar;D:\repository\org\bouncycastle\bcprov-jdk15on\1.68\bcprov-jdk15on-1.68.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.ruoyi.system.test.CollectionsTest,test
[rat, cat, dog, dog]
[rat, cat, dog, dog]
[rat, cat, dog]
[cat, dog, rat]
[rat, cat, dog]
{rat=com.ruoyi.system.api.domain.SysFile@67b64c45[
  name=Fuzzy
  url=<null>
], cat=com.ruoyi.system.api.domain.SysFile@7f690630[
  name=Rags
  url=<null>
], dog=com.ruoyi.system.api.domain.SysFile@edf4efb[
  name=Spot
  url=<null>
]}
{cat=com.ruoyi.system.api.domain.SysFile@2f7a2457[
  name=Rags
  url=<null>
], dog=com.ruoyi.system.api.domain.SysFile@566776ad[
  name=Spot
  url=<null>
], rat=com.ruoyi.system.api.domain.SysFile@6108b2d7[
  name=Fuzzy
  url=<null>
]}
{rat=com.ruoyi.system.api.domain.SysFile@1554909b[
  name=Fuzzy
  url=<null>
], cat=com.ruoyi.system.api.domain.SysFile@6bf256fa[
  name=Rags
  url=<null>
], dog=com.ruoyi.system.api.domain.SysFile@6cd8737[
  name=Spot
  url=<null>
]}
Process finished with exit code 0
相关文章
|
4天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
20 3
|
14天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
36 5
|
29天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
52 24
|
11天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
49 2
|
26天前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
66 5
|
26天前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
50 5
|
27天前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
38 4
|
28天前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
1月前
|
Java API Maven
商汤人像如何对接?Java代码如何写?
商汤人像如何对接?Java代码如何写?
41 5
|
25天前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。