Collection接口常用方法

int size();//集合大小
boolean isEmpty();//是否为空
boolean contains(Object o);//是否包含某个元素
Iterator<E> iterator();//返回迭代器对象
Object[] toArray();//转为数组
boolean add(E e);//添加元素
boolean remove(Object o);//删除元素
boolean containsAll(Collection<?> c);//是否包含集合c中的全部元素
boolean addAll(Collection<? extends E> c);//将集合c中的全部元素添加进来
boolean removeAll(Collection<?> c);//如果有存在于集合c中的元素则删除
void clear();//清空集合

存放String类型

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class Collection1 {
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
//添加
collection.add("Java1");
collection.add("Java2");
collection.add("Java3");
collection.add("Java4"); //遍历
//增强for
System.out.println("**增强for**");
for (String string : collection) {
System.out.println(string);
}
//迭代器
System.out.println("**迭代器iterator**");
Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()){
String s = iterator.next();
System.out.println(s);
//使用Collection的remove会有ConcurrentModificationException
//需要使用Iterator中的方法
// collection.remove("Java1");
// iterator.remove();
} System.out.println("**判断方法**");
System.out.println("大小:"+collection.size());
System.out.println("包含:"+collection.contains("Java1"));
System.out.println("是否为空:"+collection.isEmpty()); System.out.println("**其他操作**");
//转为数组 方法一
//方法一不用考虑初始化数组的大小,但不能转为特定类型的数组
Object[] array = collection.toArray();
System.out.println(array.length); //转为数组 方法二
//需要指定初始化数组的大小
//数组过大,大的部分会赋值为null,过小则全部赋值为null
String[] strs = new String[5];
collection.toArray(strs);
for (String str : strs) {
System.out.println(str);
}
}
}
**增强for**
Java1
Java2
Java3
Java4
**迭代器iterator**
Java1
Java2
Java3
Java4
**判断方法**
大小:4
包含:true
是否为空:false
**其他操作**
4
Java1
Java2
Java3
Java4
null

存放自建对象

public class Student {
private String name;
private int age; public Student(String name, int age) {
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
} @Override
public int hashCode() {
return Objects.hash(name, age);
}
}
public class Collection2 {
public static void main(String[] args) {
Collection<Student> collection = new ArrayList<>();
//添加
collection.add(new Student("Java1",18));
collection.add(new Student("Java2",19));
collection.add(new Student("Java3",20));
collection.add(new Student("Java4",21)); //遍历
//增强for
System.out.println("**增强for**");
for (Student student : collection) {
System.out.println(student);
if (student.getName().equals("Java1")){
student.setAge(0);
}
} System.out.println(collection); //迭代器
System.out.println("**迭代器iterator**");
Iterator<Student> iterator = collection.iterator();
while (iterator.hasNext()){
Student student = iterator.next();
System.out.println(student);
} System.out.println("**判断方法**");
System.out.println("大小:"+collection.size());
System.out.println("包含:"+collection.contains(new Student("Java2",19)));
System.out.println("是否为空:"+collection.isEmpty()); // System.out.println("**其他操作**");
//转为数组 方法一
//方法一不用考虑初始化数组的大小,但不能转为特定类型的数组
// Object[] array = collection.toArray();
// System.out.println(array.length); //转为数组 方法二
//需要指定初始化数组的大小
//数组过大,大的部分会赋值为null,过小则全部赋值为null
// String[] strs = new String[5];
// collection.toArray(strs);
// for (String str : strs) {
// System.out.println(str);
// } }
}
**增强for**
Student{name='Java1', age=18}
Student{name='Java2', age=19}
Student{name='Java3', age=20}
Student{name='Java4', age=21}
[Student{name='Java1', age=0}, Student{name='Java2', age=19}, Student{name='Java3', age=20}, Student{name='Java4', age=21}]
**迭代器iterator**
Student{name='Java1', age=0}
Student{name='Java2', age=19}
Student{name='Java3', age=20}
Student{name='Java4', age=21}
**判断方法**
大小:4
包含:true
是否为空:false

使用boolean contains(Object o);方法时,传入的对象要重写equals方法

Collection和Collections的区别

Java Collection工具类

java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。

Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

Java Collection集合的基本操作的更多相关文章

  1. ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢

    <!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...

  2. JAVA collection集合之 扑克牌游戏

    主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相 ...

  3. Java Collection集合方法

    一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...

  4. Java Collection集合中的iterator方法

    Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返 ...

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

    Collection集合概述 Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合 与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的 ...

  6. Java——Collection集合、迭代器、泛型

    集合 ——集合就是java提供的一种容器,可以用来存储多个数据. 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. 集合存储的都是对象 ...

  7. Java——Collection集合

    ##Collection集合 1.Collection集合是单列集合 2.Collection是所有单列集合最顶层的接口,定义了所有单列集合的共性方法 任意的单列集合都可以使用Collection接口 ...

  8. java collection集合

    集合:用于存储对象的容器.集合中可以存储任意类型的对象,长度可变. 集合和数组的比较 集合和数组都是存储对象的容器,不同的是,数组可以存储基本数据类型(int.short.long.char.Bool ...

  9. Java Collection集合接口

    Collection接口是赖以集合框架建立的基础.它声明的所有集合的核心方法.这些方法概括于下表中. 因为所有集合都要实现Collection,熟悉它的方法是对框架有清晰的认识很有必要.这几种方法都可 ...

  10. Java Collection开发技巧

    Java Collection(集合) 集合中的一些技巧: 通过Collections类的静态方法,可以对集合进行一些操作 1 java.util.List<Integer> number ...

随机推荐

  1. 1. Docker 的简介概述

    1. Docker 的简介概述 @ 目录 1. Docker 的简介概述 2. Docker 的理念: 3. 容器与虚拟机比较 4. Docker应用场景 5. 最后: 为什么会有 Docker 出现 ...

  2. git命令参考

    git命令参考 前言 在版本管理中,我们常用到git或者svn去管理我们的代码. 因为嵌入式开发经常要用到Linux环境做开发,所以懂得一定的git命令对我们进行开发过程中的版本管理非常重要 创建仓库 ...

  3. JavaGUI - [01] 常见API

    题记部分 一.Component 作为基类,提供了如下常用的方法来设置组件的大小.位置.可见性等. setLocation(int x,int y) 设置组件的位置 setSize(int width ...

  4. 机器学习 | 强化学习(7) | 融合学习与规划(Integrating Learning and Planning)

    7-融合学习与规划(Integrating Learning and Planning) 1.导论 基于模型的强化学习(Model-Based Reinforcement Learning) 在上一个 ...

  5. 基于自注意力机制的轻量级人体姿态估计(Lightweight Human Pose Estimation Based on Self-Attention Mechanism)

    写在前面 本文是一篇于2023年3月21日发表在2023 International Conference on Big Data, Environmental Industry and Materi ...

  6. AI 实践|零成本生成SEO友好的TDK落地方案

    之前写过一篇文章「Google搜索成最大入口,简单谈下个人博客的SEO」,文章里介绍了网页的描述信息TDK(Title.Description和Keywords)对SEO的重要作用,尽管已经意识到了T ...

  7. Selenium KPI接口 警告弹 -alert/confirm/promp

    应用场景: 有些页面进入后自带弹窗提醒功能需要确认,这时候就需要将焦点定位到alert弹窗上. 使用格式: alert=driver.switchtoalert() alert.accept() 实现 ...

  8. Laravel11 从0开发 Swoole-Reverb 扩展包(一) - 扩展包开发

    前言 大家好呀,我是yangyang.好久没更新了,最近新项目在使用laravel11(截止目前发文,laravel12也发布了)做开发,自己也是利用有些空闲时间做些除开业务以外的深入学习,因此也就萌 ...

  9. python 函数与方法的区别

    函数与方法的区别 并不是类中的调用都叫方法 1.函数要手动传self,方法不用传self. 2.如果是一个函数,用类名去调用,如果是一个方法,用对象去调用. class Foo(object): de ...

  10. Joker 智能开发平台再放大招,新作将彻底重塑开发模式

    -- 突破传统枷锁,引领开发模式全面革新 自前端可视化智能平台重磅发布后,其在行业内的影响力便如涟漪般迅速扩散.凭借着创新的设计理念和过硬的性能表现,这个平台为无数开发者和企业提供了高效且便捷的开发解 ...