1. import java.util.*;
  2. /**
  3. * 数组存储数据的特点:
  4. * ①一旦初始化,大小确定
  5. * ②一旦定义,存储的类型确定且相同。
  6. * 数组存储的弊端:
  7. * ①大小无法改变。
  8. * ②方法较少,插入、删除元素不便且效率较低。
  9. * ③数据有序、可重复,对于无序、不可重复的无法满足要求。
  10. * ④无法直接获取数组中实际元素的个数。
  11. */
  12. /** Collection接口方法集合
  13. col.add(); //添加单个元素
  14. col.addAll(); //传入Collection
  15. col.size(); //实际存储的个数
  16. col.isEmpty(); //判断是否为空
  17. col.contains(); //判断是否包含,调用equals()方法
  18. col.containsAll();
  19. col.iterator(); //返回迭代器对象
  20. col.toArray(); //返回Object类型的数组
  21. col.remove(); //移除,查找时调用equals()方法 删除成功,返回true 否则返回false
  22. col.removeAll(); //求差集,并修改当前集合
  23. col.retainAll(); //求交集
  24. col.clear(); //清空
  25. col.hashCode();
  26. col.equals();
  27. */
  28. public class CollectionTest {//单列集合15个方法测试
  29. public static void main(String[] args) {
  30. //1.Collection下的方法*********************
  31. Collection col1 = new ArrayList();
  32. col1.add(123);
  33. col1.add("Jack");
  34. col1.add(new Person(12,"Lisa"));
  35. col1.add(false);
  36. col1.add(12.0);
  37. System.out.println(col1.contains(new Person(12,"Lisa"))); //true Person类重写了equals()方法
  38. System.out.println(col1.size());//5
  39. System.out.println(col1.isEmpty());//false
  40. Object[] arr = col1.toArray();//返回Object数组
  41. for(Object obj: arr){
  42. System.out.println(obj);
  43. }
  44. //123
  45. //Jack
  46. //ColletionStudy.Person@2429e0 Person类没有实现toString()方法
  47. //false
  48. //12.0
  49. Collection col2 = new ArrayList();
  50. col2.add(123);
  51. col2.add("Jack");
  52. col2.add(new Person(12,"Lisa"));
  53. col1.retainAll(col2);//求交集,并修改col1
  54. System.out.println("交集:");
  55. for(Object obj:col1){
  56. System.out.println(obj);
  57. }
  58. col1.removeAll(col2);//col中删除col2的部分
  59. for(Object obj:col1){
  60. System.out.println(obj);
  61. }
  62. //false
  63. //12.0
  64. //1end***********************************
  65. //2.迭代器遍历*****************
  66. Iterator iterator = col1.iterator();//每次调用iterator()返回的都是一个新的迭代器。指针指向第一个元素的前一个位置。
  67. while (iterator.hasNext()){//迭代器原理:刚开始,指针指向第一个元素的前一个位置。
  68. System.out.println(iterator.next());//先调用next,指针下移;再返回下移后指针指向的元素
  69. iterator.remove();
  70. //调用迭代器的方法,移除当前元素,而不是调集合的方法
  71. }
  72. //可能报NoSuchElementException异常:已经没有了,还调用next()
  73. //可能报IllegalStateException异常:没有指向,掉remove()
  74. //2end**************************
  75. //3.Arrays.asList()***************
  76. List list1 = Arrays.asList(123,456);//传入可变参数
  77. System.out.println("list1 = " + list1);//list1 = [123, 456]
  78. List list2 = Arrays.asList(new int[]{123,456});//会被当成一个元素
  79. System.out.println("list2 = " + list2);//list2 = [[I@75b84c92]
  80. //error: List<Integer> list3 = Arrays.asList(new int[]{123,456});
  81. List<Integer> list3 = Arrays.asList(new Integer[]{123,456});
  82. System.out.println("list3 = " + list3);//list3 = [123, 456]
  83. List list4 = Arrays.asList(new Integer[]{123,456});//传入对象数组
  84. System.out.println("list4 = " + list3);//list3 = [123, 456]
  85. //3end*******************************
  86. }
  87. }
  1. import java.util.Objects;
  2. /**
  3. * @author :Zhifei Zhang
  4. * @date :Created in 2021-03-03 23:31
  5. * @description:
  6. * @modified By:Hickey
  7. * @version: $
  8. */
  9. public class Person {
  10. int age;
  11. String name;
  12. public Person() {
  13. }
  14. public Person(int age, String name) {
  15. this.age = age;
  16. this.name = name;
  17. }
  18. @Override
  19. public boolean equals(Object o) {
  20. if (this == o) return true;
  21. if (o == null || getClass() != o.getClass()) return false;
  22. Person person = (Person) o;
  23. return age == person.age && Objects.equals(name, person.name);
  24. }
  25. @Override
  26. public int hashCode() {
  27. return Objects.hash(age, name);
  28. }
  29. }

Java Collecion的常用方法的更多相关文章

  1. java线程的常用方法

    java线程的常用方法 编号 方法 说明 1 public void start() 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 2 public void run() 如果该线程 ...

  2. Java中的常用方法

    Java中的常用方法 第一章 字符串 1.获取字符串的长度:length() 2.判断字符串的前缀或后缀与已知字符串是否相同    前缀 startsWith(String s).后缀 endsWit ...

  3. Java 中String常用方法

    java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len ...

  4. java多线程的常用方法(以及注意事项)

    /* * 线程的常用方法 * 1.start(); * 2.run(); * 3.sleep(int millsecond); * 4.isAlive(); -->判断线程是否还在运行 * 5. ...

  5. Java中String常用方法

    java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len= ...

  6. Redis JAVA客户端 Jedis常用方法

    Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现) #MAVEN配置 <dependency> <groupId>redi ...

  7. Java Class类常用方法描述

    一 生成Class对象的三种方式 1 Class.forName("全路径名") 2  类名.Class 3 实例对象.getClass() 接着看三种方式生成Class对象的区别 ...

  8. java基础系列(二):java数据结构及常用方法

    1.数组Array (1)创建数组 dataType[] arrayName = new dataType[length];必须指定大小,否则会报错:如果不想指定大小,应采用声明数组变量的方式 dat ...

  9. JAVA String类常用方法

    一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...

随机推荐

  1. Netperf测试技巧

    Netperf测试技巧   Netperf测试技巧 1.概况 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即 ...

  2. Linux进阶之磁盘管理及LVM逻辑卷

    本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...

  3. Java 语言的主要特性

    Java语言是简单的 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用. Java丢弃了C++中很少使用的.很难理解的.令人迷惑的那些特性,如操作符重载.多继承.自动的强 ...

  4. Modbus RTU CRC校验码计算方法

    在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算. CRC计算方法是: 1.  加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器. 2.   ...

  5. 重新整理 .net core 实践篇—————配置系统之间谍[八](文件监控)

    前言 前文提及到了当我们的配置文件修改了,那么从 configurationRoot 在此读取会读取到新的数据,本文进行扩展,并从源码方面简单介绍一下,下面内容和前面几节息息相关. 正文 先看一下,如 ...

  6. CPU的自动调度矩阵乘法

    CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,而无需任何调度 ...

  7. AMD Ryzen 5000‘Cezanne’APU

    AMD Ryzen 5000'Cezanne'APU Spotted,Zen 3&7nm Vega芯片将在2021年前保留AM4支持 AMD Ryzen 5000 'Cezanne' APU ...

  8. 自然语言推理:微调BERT

    自然语言推理:微调BERT Natural Language Inference: Fine-Tuning BERT SNLI数据集上的自然语言推理任务设计了一个基于注意力的体系结构.现在通过微调BE ...

  9. 反应式系统实现MQTT客户机

    反应式系统实现MQTT客户机 Implementing an MQTT client for reactive systems MQTT Reactive是从LiamBindle的MQTT-C库派生的 ...

  10. 如果攻击者操控了 redirect_uri,会怎样?

    读者在看这篇文章之前,请先了解 Oauth2.0 的 Authorization Code 授权流程,可以看 Authorization Code 授权原理和实现方法 在 Token Enpoint ...