java集合框架Collection(一)

简介: java集合框架Collection

java集合框架

java.util.Collection接口

Collection接口中定义了所有集合都要具备的功能,它也是所有集合的顶级接口。

Collection下面有几种不同集合的分类,常见的两个:

1.java.util.List:List接口表示的是线性表,是有序的且可以存放重复元素的集合 *

2.java.util.Set:Set接口表示的是不可重复的集合

这里指的重复是元素是否可以重复,而判断重复的标准是根据元素自身equals比较。

public static void main(String[] args) {
  Collection c = new ArrayList();
  /*
   * boolean add(E e)
   * 向当前集合中添加给定元素,成功添加后返回true
   */
  c.add("one");
  c.add("two");
  c.add("three");
  c.add("four");
  c.add("five");
  System.out.println(c);
  /*
   * int size()
   * 返回当前集合的元素个数
   */
  int size = c.size();
  System.out.println("size:"+size);
  /*
   * boolean isEmpty()
   * 判断当前集合是否为空集
   */
  boolean isEmpty = c.isEmpty();
  System.out.println("isEmpty:"+isEmpty);
  /*
   * void clear()
   * 清空集合
   */
  c.clear();
  System.out.println(c);
  System.out.println("size:"+c.size());
  System.out.println("isEmpty:"+c.isEmpty());
  }


boolean contains(E e)


判断当前集合是否包含给定元素,是否包含的依据是是否

与集合现有元素存在equals比较 为true的情况。

public static void main(String[] args) {
  Collection c = new ArrayList();
  c.add(new Point(1,2));
  c.add(new Point(3,4));
  c.add(new Point(5,6));
  c.add(new Point(7,8));
  System.out.println(c);
  Point p = new Point(1,2);
  boolean contains = c.contains(p);
  System.out.println("包含:"+contains);
  /*
   * 删除元素也是依靠元素equals比较进行删除的,如果集合有重复元素则
   * 只删除一次。
   */
  c.remove(p);
  System.out.println(c);
  }


集合只能放引用类型元素,并且存放的也是元素的引用(地址)


public static void main(String[] args) {
  Collection c = new ArrayList();
  Point p = new Point(1,2);
  c.add(p);
  System.out.println("p:"+p);
  System.out.println("c:"+c);
  p.setX(2);
  System.out.println("p:"+p);
  System.out.println("c:"+c);
  }

运行结果为

image.png


public static void main(String[] args) {
    Collection<String> c1 = new ArrayList<>();
//    Collection c1 = new HashSet();//HashSet是由HashMap实现的
    c1.add("java");
    c1.add("c++");
    c1.add(".net");
    System.out.println("c1:"+c1);
    Collection<String> c2 = new ArrayList<>();
    c2.add("ios");
    c2.add("android");
    c2.add("java");
    System.out.println("c2:"+c2);
    /*
     * addAll方法是取并集操作,会将给定集合中的所有元素添加到当前集合中。
     * 如果当前集合是Set集合,重复元素不能被再次添加进集合。
     */
    c1.addAll(c2);
    System.out.println("c1:"+c1);
    Collection<String> c3 = new ArrayList<>();
    c3.add("c++");
    c3.add("android");
    c3.add("php");
    System.out.println("c3:"+c3);
    /*
     * containsAll用于判断当前集合是否包含给定集合中的所有元素
     */
    boolean contains = c1.containsAll(c3);
    System.out.println("全包含:"+contains);
    /*
     * removeAll用于删除当前集合中与给定集合的共有元素。给定集合中的元素
     * 不受影响。
     */
    c1.removeAll(c3);
    System.out.println("c1:"+c1);
    System.out.println("c3:"+c3);
  }



遍历集合


Iterator iterator


该方法可以获取一个用于遍历当前集合元素的迭代器


java.util.Iterator接口,迭代器接口

迭代器接口规定了使用迭代器方式办理集合的相关操作,不同的集合都提供了对应的 实现类,我们无需记住这些具体实现类的名字,只要当作是Iterator看即可(多态),然后根据定义的相关操作遍历即可。


迭代器遍历集合遵循的原则是:问,取,删

其中删除元素不是必要操作。

public static void main(String[] args) {
    Collection<String> c = new ArrayList<>();
    c.add("one");
    c.add("#");
    c.add("two");
    c.add("#");
    c.add("three");
    c.add("#");
    c.add("four");
    c.add("#");
    c.add("five");
    System.out.println(c);
    @SuppressWarnings("rawtypes")
    Iterator it = c.iterator();
    /*
     * boolean hasNext()
     * 通过迭代器判断集合是否还有下一个元素可以遍历
     */
    while(it.hasNext()) {
      /*
       * E next()
       * 通过迭代器遍历集合下一个元素
       */
      String str =(String)it.next();
      if("#".equals(str)) {
        //迭代器要求在遍历的过程中不得通过集合方法增删元素,否则抛异常
//        c.remove(str);
        //迭代器的remove方法可以将本次next()遍历的元素从集合中删除
        it.remove();
      }
      System.out.println(str);
    }
    System.out.println(c);
  }



结果如下

image.png

目录
相关文章
|
5天前
|
Java 容器
java集合框架复习----(1)
这篇文章提供了Java集合框架的复习资料,包括集合的概念、Collection接口的使用,以及如何通过代码示例演示集合的操作,如增加、删除元素,以及遍历集合元素。
java集合框架复习----(1)
|
5天前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
5天前
|
存储 安全 Java
java集合框架复习----(2)List
这篇文章是关于Java集合框架中List集合的详细复习,包括List的特点、常用方法、迭代器的使用,以及ArrayList、Vector和LinkedList三种实现类的比较和泛型在Java中的使用示例。
java集合框架复习----(2)List
|
5天前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
5天前
|
存储 Java
java集合框架复习----(3)Set
这篇文章详细介绍了Java集合框架中的Set集合,包括HashSet和TreeSet的特点、实现原理和使用示例,展示了Set集合的无序性、元素唯一性以及如何通过自定义比较器实现元素的排序。
|
6天前
|
存储 安全 Java
java集合框架学习笔记
这篇文章是关于Java集合框架的详细学习笔记,包括集合的概念、使用方式以及List、Set和Map等集合类型的具体实现和特点。
java集合框架学习笔记
|
6天前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
11天前
|
安全 算法 Java
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)(下)
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)
49 6
|
11天前
|
存储 安全 Java
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)(中)
17 Java多线程(线程创建+线程状态+线程安全+死锁+线程池+Lock接口+线程安全集合)
51 5
|
6天前
|
JavaScript 前端开发 网络协议
WebSocket在Java Spring Boot+Vue框架中实现消息推送功能
在现代Web应用中,实时消息提醒是一项非常重要的功能,能够极大地提升用户体验。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为实现实时消息提醒提供了高效且低延迟的解决方案。本文将详细介绍如何在Java Spring Boot后端和Vue前端框架中利用WebSocket实现消息提醒功能。
20 0