Java集合 Collection

Jdk提供了一些特殊的类,用来保存数量不确定的对象,存储任意类型对象,长度可变。这些类统称为集合。

集合类位于Java.util包中,按存储结构分为Collection单列集合和Map双列集合。

Collection是单列集合的根接口,有两个重要的子接口List,Set。

  • List接口特点:元素有序可重复。

    主要接口实现类:ArrayList、LinkedList

  • Set接口特点:元素无序,不可重复。

    主要接口实现类:HashSet、TreeSet

Map是双列集合的根接口,存储具有键Key,值Value映射关系的元素,每个元素都包含一个键-值对。可以通过指定键找到对应的值。

  • 主要接口实现类:HashMap,TreeMap

Collection:

Collection它是一个接口,不能直接实例化使用,只能通过它的子类来完成。

Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。

参考API文档:Collection接口的常用方法

Iterator<E> iterator()//返回此集合中的元素的迭代器。 没有关于元素返回顺序的保证(除非这个集合是提供保证的某个类的实例)。
boolean containsAll(Collection<?> c) //如果此集合包含指定 集合中的所有元素,则返回true。 
boolean removeAll(Collection<?> c) //删除指定集合中包含的所有此集合的元素(可选操作)。 
boolean addAll(Collection<? extends E> c) //将指定集合中的所有元素添加到此集合(可选操作)。 
boolean retainAll(Collection<?> c) //仅保留该集合中同时包含在指定集合中的对象。
<T> T[] toArray(T[] a) //返回包含此集合中所有元素的数组; //入口参数必须为数组类型的实例,而且已经被初始化,它用来指定要获得的数组类型。
boolean add(E e) //添加指定对象到集合中  
/*
Iterator<E> iterator()
boolean addAll(Collection<? extends E> c) 
*/
package collection.test;import java.util.*;
public class Test {public static void main(String[] args) {String a = "A";String b = "B";String c = "C";Collection<String> list = new ArrayList<String>();list.add(a);list.add(b);Collection<String> list2 = new ArrayList<String>();list2.addAll(list);//将list中所有对象添加到list2中list2.add(c);Iterator<String> it = list2.iterator();while(it.hasNext()) {String str = it.next();System.out.println(str);}}
}
/*
A
B
C
*/package collection.test;import java.util.*;
public class Test1 {public static void main(String[] args) {String a = "A", b = "B", c= "C";Collection<String> list = new ArrayList<String>();list.add(a);list.add(b);Collection<String> list2 = new ArrayList<String>();list2.add(b);list2.add(c);boolean isContains = list.removeAll(list2);//从list中移除包含在list2中的对象System.out.println(isContains);Iterator<String> it = list.iterator();while(it.hasNext()) {String str = it.next();System.out.println(str);}}
}
/*
true
A 
*/package collection.test;
import java.util.*;
public class Test2 {public static void main(String[] args) {String a = "A", b = "B", c= "C";Collection<String> list = new ArrayList<String>();list.add(a);list.add(b);Collection<String> list2 = new ArrayList<String>();list2.add(b);list2.add(c);boolean isContains = list.containsAll(list2);//查看list中是否包含list2中的所有对象System.out.println(isContains);//输出false}
}package collection.test;import java.util.*;public class Test3 {public static void main(String[] args) {String a = "A", b = "B", c= "C";Collection<String> list = new ArrayList<String>();list.add(a);list.add(b);Collection<String> list2 = new ArrayList<String>();list2.add(b);list2.add(c);boolean isContains = list.retainAll(list2);//仅保留list和list2都有的对象。System.out.println(isContains);//存在符合条件的返回true。Iterator<String> it = list.iterator();while(it.hasNext()) {String str = it.next();System.out.println(str);}}
}
/*
true
B
*/package collection.test;import java.util.ArrayList;
import java.util.Collection;public class Test4 {public static void main(String[] args) {String a = "A", b = "B", c= "C";Collection<String> list = new ArrayList<String>();list.add(a);list.add(b);String strs[] = new String[1];//创建一个String类型的数组,而且已经被初始化。strs是可以存储一个String对象的数组。String strs2[] = list.toArray(strs);//生成一个String类型的数组str2,其元素是集合list的所有对象。for(int i = 0; i < strs2.length; i++) {System.out.println(strs2[i]);}}
}
/*
A
B
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java basic data type,java基本数据类型--Basic Datatypes

Variables are nothing but reserved memory locations to store values. This means that when you create a variable you reserve some space in the memory.---说的好有道理Based on the data type of a variable, the operating system allocates memory and decides what…

Java final修饰符的作用,Java中的final修饰符

1.什么时候可以选择final修饰符如果想让一个类不被其他类继承&#xff0c;不允许在有子类&#xff0c;这时候就要考虑用到final来修饰。2.用final修饰的类首先大家要明白&#xff0c;用final修饰的类是不能被继承的&#xff0c;下面来看一个错误案例。eg&#xff1a;final clas…

Java基础 HashMap的添加 修改 遍历 Map.Entry Map.entrySet()的使用及实例

Java Map Map中不能包含相同的键&#xff0c;每个键只能映射一个值。 HashMap&#xff1a;并不能保证它的元素的顺序&#xff0c;元素加入散列映射的顺序并不一定是它们被迭代方法读出的顺序。 Map.Entry Map.Entry 是Map中的一个接口&#xff0c;他的用途是表示一个映射项…

adminer.php下载,Adminer.php

Adminer.php就是原来的phpMinAdmin&#xff0c;这是用PHP编写的数据库管理工具&#xff0c;支持mysql、mariadb、postgresql、sqlite、MS SQL、Oracle等多种数据库&#xff0c;虽然是一个源码&#xff0c;但是可以使用用户们和密码直接连接到数据库的服务器&#xff0c;既可以对…

windows下如何在命令行里切换到任意目录

切换到C盘中的某个文件夹&#xff0c;比如AppData&#xff0c;可以执行命令cd AppData; 但如果想切换到D盘&#xff0c;输入cd d:是不行的; 如果我们要切换盘符的目录&#xff0c;正确的用法是在cd 和路径中间 增加一个“/d”&#xff0c;如cd /d d: 也可以不用cd指令&#x…

Java基础 系统注解 @Override @Deprecated @SuppressWarnings 使用的方法及原因

Java 系统注解 为什么用&#xff1f;&#xff1a; 好处&#xff1a;使用系统定义的注解&#xff0c;可以在编译时对程序进行检查。 注解用在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;对这些元素进行说明和注释。 Override Override用来修饰一个方法&am…

java二维数组排序先行后列,数组知识点归纳

◆◆◆一、理解一维数组的定义和应用&#xff0c;了解二维数组和控件数组&#xff1b;1、数组的概念&#xff1a;数组并不是一种数据类型&#xff0c;而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据&#xff0c;每个元素用下标变量来区分&…

Java 使用反射处理注解

Java 使用反射处理注解 自定义注解的格式&#xff1a; [public|final] interface 注解名//interface 表明&#xff1a;这是一个自定义注解 {注解元素//注解元素 是无参数的方法 }// 注解元素的格式&#xff1a; 数据类型 注解元素名() [default 默认值]例子&#xff1a; //自…

php面试宝典1000题,【PHP面试宝典1000题】HTTP中的请求头(深圳小美网络科技)

(1)通作一新求抖直微圈用信息头即址工框按都不他移据流。果原箭近第作架量是能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pra分浏代刚的学过互解久点维数数请曾房总题屏断果如以气。泉公一实切式时带近享览码开时会进。,后&#xff0c;护…

java基础 通过继承Thread类和实现Runnable接口创建线程

java 创建线程 Java中&#xff0c;线程也是一种对象&#xff0c;但不是任何对象都可以成为线程。 只有实现了Runnable接口或继承了Thread类的对象才能成为线程。 继承Thread类 //格式&#xff1a; class 类名 extends Thread//从Thread类扩展出子类 {属性方法修饰符 run(){…

php求链表中位数,先给伸手党的php链表遍历求和

问题给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的和。您可以假设除了数字…

Java基础 线程同步

线程的同步&#xff1a;在编程过程中&#xff0c;为了防止多线程访问共享资源时发生冲突&#xff0c;Java提供了线程同步机制。所谓同步&#xff0c;就是指一个线程等待另一个线程操作完再继续的情况。 线程安全&#xff1a;一个类很好地同步以保护它的数据&#xff0c;这个类…

c++primer 3.2,3.3练习题

文章目录3.2.2 string 对象上的操作3.2.3 处理string对象中的字符3.3.2 向vector对象中添加元素3.3.3其他vector操作练习题涉及到代码的部分。3.2.2 string 对象上的操作 3.2 //一次输入一整行 #include<string> #include<iostream> using namespace std;int mai…

c++primer 3.4练习题

文章目录3.4 迭代器介绍3.4.1 使用迭代器3.4.2 迭代器运算3.4 迭代器介绍 3.4.1 使用迭代器 3.21 #include<vector> #include<iostream> #include<string> using namespace std;int main(){vector<int> v1;vector<int> v2(10);vector<int&…

嵌入式nosql php,NoSQL 嵌入式数据库NeDB示例

在nw.js一直无法配置sqlite3数据库&#xff0c;所以一直使用web sql数据库&#xff0c;不过还原之类的操作异常麻烦&#xff0c;打算使用NeDB数据库&#xff0c;非关系型数据库的扩展性很适合数据结构不确定性的nw.js项目。在Capacitor或cordova打包APP使用需引用&#xff1a;n…

logisim无法打开解决办法

打开报错&#xff1a;the registry refers to a nonexistent java Runtime Environment installation or the runtime is corrupted. 我明明装了1.8的jdk&#xff0c;环境变量也配置好了。但是还显示没有jdk环境。 解决办法&#xff1a; 命令行输入&#xff1a; d:cd D:\lo…

php 10的次方,动态 - 1的10次方 - OSCHINA - 中文开源技术交流社区

你们都说得对&#xff0c;可是下面这个代码怎么优化呢&#xff1f;public String(int[] codePoints, int offset, int count) {if (offset < 0) {throw new StringIndexOutOfBoundsException(offset);}if (count < 0) {throw new StringIndexOutOfBoundsException(count)…

单片机实验:交通灯控制

实验要求 按照电路要求在Protues中设计电路图&#xff0c;或者使用开发板。编程实现如下功能&#xff1a; 用单片机端口作输出口&#xff0c;控制四个方向共12个发光二极管亮灭&#xff0c;模拟交通灯管理。功能描述如下&#xff1a;初始态为四个路口的红灯全亮之后&#xff0…

单片机实验:节日彩灯控制器

任务 设计8路节日彩灯控制器&#xff0c;要求在Protues中设计接口电路图&#xff0c;并编程实现节日彩灯闪烁方式的控制&#xff1a; 通过P1.0到P1.2来控制3个按键。3个按键分别对应3种彩灯闪烁方式。彩灯闪烁方式分别为&#xff1a;从上往下的循环、从下往上以及从中间向两边…

oracle关联分组查询,oracle中关联查询、分组查询

高级查询1.关联查询作用&#xff1a;可以跨越多表查询--查询出员工的名字和他所在部门的的名字//古老的写法select first_name,name from s_emp,s_dept where s_emp.dept_id s_dept.id;//现在的写法select e.first_name,s.name from s_emp e join s_dept s on e.dept_id s.id…