Java Collection集合的基本操作
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.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
Java Collection集合的基本操作的更多相关文章
- ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢
<!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...
- JAVA collection集合之 扑克牌游戏
主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相 ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- Java Collection集合中的iterator方法
Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返 ...
- Java Collection集合概述及其常用方法
Collection集合概述 Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合 与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的 ...
- Java——Collection集合、迭代器、泛型
集合 ——集合就是java提供的一种容器,可以用来存储多个数据. 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. 集合存储的都是对象 ...
- Java——Collection集合
##Collection集合 1.Collection集合是单列集合 2.Collection是所有单列集合最顶层的接口,定义了所有单列集合的共性方法 任意的单列集合都可以使用Collection接口 ...
- java collection集合
集合:用于存储对象的容器.集合中可以存储任意类型的对象,长度可变. 集合和数组的比较 集合和数组都是存储对象的容器,不同的是,数组可以存储基本数据类型(int.short.long.char.Bool ...
- Java Collection集合接口
Collection接口是赖以集合框架建立的基础.它声明的所有集合的核心方法.这些方法概括于下表中. 因为所有集合都要实现Collection,熟悉它的方法是对框架有清晰的认识很有必要.这几种方法都可 ...
- Java Collection开发技巧
Java Collection(集合) 集合中的一些技巧: 通过Collections类的静态方法,可以对集合进行一些操作 1 java.util.List<Integer> number ...
随机推荐
- Presto常用命令
一.基本资料 1.官方文档 https://prestodb.github.io/docs/current/sql/select.html 二.常用命令 1.kill任务,登录presto客户端 CA ...
- EasyExcel 通过模板填充数据
EasyExcel 通过模板填充数据两种方式:1.直接通过模板填充.2.通过IO流填充. 模板示例 注意:单个字段填充只写字段名即可,数据集填充需要在字段前加 . {title} 姓名 昵称 手机号 ...
- 洛谷P1983 [NOIP2013 普及组] 车站分级 题解
思路 由题可知,在一趟车次的区间内,停靠的站点的等级恒大于不停靠的站点. 因此,对于每一趟车次的区间,给所有停靠的站点向所有不停靠的站点两两连有向边,然后求图中最长的路径长度,就能得到答案. 实现 因 ...
- autMan奥特曼机器人-内置Redis
autMan内置了redis服务,有的脚本运行需要redis支持 几个注意事项: 启用redis服务后要重启autMan生效,关闭一样的道理. 启用redis服务后会增加约200M的内存占用 多个au ...
- Flink学习(十四) Flink 窗口、时间和水位线
Flink 框架中支持事件时间.摄入时间和处理时间三种.而当我们在流式计算环境中数据从 Source 产生,再到转换和输出,这个过程由于网络和反压的原因会导致消息乱序.因此,需要有一个机制来解决这个问 ...
- 使用watch指令实时监控nvidia显卡状态
当你在训练模型等需要实时检查英伟达显卡状态的时候,使用watch是很好的解决方案 相较于传统的nvidia-smi -l 1指令实时查看的显示效果不好看,watch可以标记处更新的部分,并且是动态刷新 ...
- nginx: [error] open() "/usr/local/nginx/nginx.pid" failed (2: No such file or directory)
nginx 启动出现错误 nginx: [error] open() "/usr/local/nginx/nginx.pid" failed (2: No such file or ...
- VRRP+BFD实验
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)的工作原理主要涉及多个路由器(或具备路由功能的设备)协同工作,通过VRRP报文和优先级机制来选举出一 ...
- linux 关机方法
虚拟机是虚拟技术的一种,很多用户会在虚拟机上边使用命令来进行自定义操作关机,这样方便快捷,能够有更多的时间处理别的事情,那么还有没有其他更容易操作的poweroff关机命令呢?一起来看下吧. 虚拟机关 ...
- oracle的各版本的名称
我最早接触的是oracle的版本8那个时候是8i i是internet后来是9i然后到10,就是版本10g g是grid的意思然后是11g然后12就变成了C,就是12c c是cloud的意思然后后面的 ...