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. Log4j2 Garbage-free 无垃圾回收模式实践与总结

    Log4j2 内置 Garbage-free(无垃圾)模式,可重用对象和缓冲区,减少日志记录时产生的垃圾对象,避免 JVM 进行 GC 回收,进而提升应用程序的性能与响应速度.以下以 Log4j2 的 ...

  2. flutter-TextField垂直居中

    decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(vertical: 0), // border: InputBord ...

  3. 正权图的 Dijkstra 最短路算法

    最短路径问题是图论中最经典且重要的应用问题之一.它的目标是找到一个图中从起点到终点的最短路径,即在所有可能的路径中,选择一条边权和最小的路径.该问题广泛存在于多个实际场景中,比如交通运输.通信网络.导 ...

  4. 在Unity中玩转表达式树:解锁游戏逻辑的动态魔法

    html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...

  5. Hive - [06] 行转列,列转行

    行转列(多行转一行) 1.创建表,并插入示例数据. create table students_info( `SNO` string comment '学生编号', `name` string com ...

  6. 面试题54. 二叉搜索树的第k大节点

    地址:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ <?php /** 面试题54. ...

  7. Easyexcel(3-文件导出)

    响应头设置 通过设置文件导出的响应头,可以自定义文件导出的名字信息等 //编码格式为UTF-8 response.setCharacterEncoding("UTF-8"); // ...

  8. Selenium KPI接口 附件上传

    实现功能 拖拽图片到百度上传图片搜索功能区域. 定位.send_keys(r'图片路径') 导入相关包 from selenium import webdriver from time import ...

  9. python excel 读取:如何读取符合多个条件的记录【出差、外出、调休、年假】

    if 语句结合or 实现:读取所有出差.外出.调休.年假的记录 if '出差' in str(c_cell) or '外出' in str(c_cell) or'调休' in str(c_cell) ...

  10. QTableView实现在表格内直接对数据库内容进行修改、新增和删除等操作

    文章目录 前言 QSqlTableModel 新增 删除 修改 提交 取消 前言 本文主要利用QSqlTableModel+QTableView来实现直接在QTableView中进行对数据库数据的操作 ...