Java 集合操作方法

阳光穿透心脏的1/2处 2024-03-27 16:49 129阅读 0赞

集合的体系结构

在这里插入图片描述

List系列集合:添加的元素是有序、可重复、有索引
Set系列集合:添加的元素是无序、不重复、无索引

操作集合的方法

在这里插入图片描述

  1. package com.mycollection;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. public class A01_CollectionDemo01 {
  5. public static void main (String[] args) {
  6. Collection<String> coll = new ArrayList<> ();
  7. coll.add ("aaa");
  8. coll.add ("bbb");
  9. coll.add ("ccc");
  10. coll.remove ("aaa");
  11. coll.contains ("aaa");
  12. coll.contains ("bbb");
  13. System.out.println (coll.isEmpty ());
  14. coll.size ();
  15. coll.clear ();
  16. coll.size ();
  17. }
  18. }

注意点:

  1. collection是一个接口,我们不能直接创建他的对象。
  2. 所以,现在我们学习他的方法时,只能创建他实现类的对象。实现类: ArrayList
  3. 目的:为了学习Collection接口里面的方法

1.添加元素

  1. 细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true
  2. 因为List系列的是允许元素重复的。
  3. 细节2:如果我们要往Set系列集合中添加数搪如果当前要添加元素不存在,方法返回true,表示添加成功。
  4. 如果当前要添加的元素已经存在,方法返回false,表示添加失败。
  5. 因为Set系列的集合不允许重复。

3.删除

  1. 细节1:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。
  2. 只能通过元素的对象进行删除。
  3. 细节2:方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false
  4. 如果要删除的元素不存在,就会删除失败。

4.判断元素是否包含

  1. 细节:底层是依赖equals方法进行判断是否存在的。
  2. 所以,如果集合中存储的是自定义对象,也想通过containsj法来判断是否包含
  3. 那么在javabean类中,一定要重写equals方法。
  4. 因为contains方法在底层依赖equals方法判断是否一致
  5. 如果存在自定义的对象,没有重写equals 方法,那么默认使用Object类中的equals方法,而Object类中的equals方法,依赖地址值进行判断
  6. 需求:如果同名同年龄,我们认为是同一个学生
  7. 所以需要在自定义的Javabean类中,重写equals方法
  8. package com.mycollection;
  9. import java.util.ArrayList;
  10. import java.util.Collection;
  11. public class A02_CollectionDemo02 {
  12. public static void main (String[] args) {
  13. //1. 创建集合对象
  14. Collection<Student> coll = new ArrayList<> ();
  15. //2. 创建三个学生对象
  16. Student s1 = new Student ("zhangsan",23);
  17. Student s2 = new Student ("lisi",23);
  18. Student s3 = new Student ("wangwu",23);
  19. //3. 把学生对象添加到集合当中
  20. coll.add (s1);
  21. coll.add (s2);
  22. coll.add (s3);
  23. //4. 判断某一个学生对象是否包含
  24. Student s4 = new Student ("zhangsan",23);
  25. /*如果同名同年龄,我们认为是同一个学生
  26. 因为contains方法在底层依赖equals方法判断是否一致
  27. 如果存在自定义的对象,没有重写equals 方法,那么默认使用Object类中的equals方法,而Object类中的equals方法,依赖地址值进行判断
  28. 需求:如果同名同年龄,我们认为是同一个学生
  29. 所以需要在自定义的Javabean类中,重写equals方法
  30. */
  31. System.out.println (coll.contains (s4));
  32. }
  33. }
  34. package com.mycollection;
  35. import java.util.Objects;
  36. public class Student {
  37. private String name;
  38. private int age;
  39. public Student (String name, int age) {
  40. this.name = name;
  41. this.age = age;
  42. }
  43. public Student () {
  44. }
  45. public String getName () {
  46. return name;
  47. }
  48. public void setName (String name) {
  49. this.name = name;
  50. }
  51. public int getAge () {
  52. return age;
  53. }
  54. public void setAge (int age) {
  55. this.age = age;
  56. }
  57. @Override
  58. public boolean equals (Object o) {
  59. if (this == o) return true;
  60. if (o == null || getClass () != o.getClass ()) return false;
  61. Student student = (Student) o;
  62. return age == student.age && Objects.equals (name, student.name);
  63. }
  64. @Override
  65. public String toString () {
  66. return "Student{" + "name='" + name + '\'' + ", age=" + age + '}';
  67. }
  68. }

发表评论

表情:
评论列表 (有 0 条评论,129人围观)

还没有评论,来说两句吧...

相关阅读