集合概述及Collection接口的常用方法
java集合像是一种容器,可以动态的把多个对象的引用放到容器中
java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组
package com.aff.coll; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator; import org.junit.Test; /*
1.存储对象可以考虑: ①数组(基本数据类型&引用数据类型) ②集合(引用数据类型)
2.数组存储对象的特点:Student[] stu = new Student[20]; stu[0] = new Student();
弊端:①一旦创建,其长度不可变,②真实的数组存放的对象的个数是不可知的
java集合可分为Collection和Map两个体系
Collection接口:
set:元素无序,不可重复的集合
list:元素有序,可重复的集合 ---- "动态"数组
Map接口:具有映射关系 "key-value对" 的集合
*/
public class TestCollection {
@Test
public void testCollection2() {
Collection coll = new ArrayList();
coll.add(123);
coll.add("AA");
coll.add(new Date());
coll.add("BB");
coll.add(new Person("mm", 13)); // .contains(Object obj); 判断集合中是否包含指定的obj元素,如果包含,返回true,反之返回false
// 判断的依据:根据元素所在的类的equals()方法进行判断
// 如果存入集合中的元素是自定义类的对象,要求:自定义类要重写equals() 方法
boolean b1 = coll.contains(123);
System.out.println(b1);// true
System.out.println(coll.size());
boolean b2 = coll.contains(new Person("mm", 13));
System.out.println(b2);// true // .containsAll(Collection coll); 判断当前集合中是否包含coll中所有的元素
Collection coll1 = new ArrayList();
coll1.add(123);
coll1.add(new String("AA"));
boolean b3 = coll.containsAll(coll1);
System.out.println(b3);// true // .retainAll(Collection coll); 取两个集合中的交集 // .remove( Object obj); 删除集合中的obj元素。 若删除成功返回true,否则返回false
boolean b4 = coll.remove("BB");
System.out.println(b4);// true // .removeAll(Collection coll);从当前集合中删除包含在coll中的元素
coll.removeAll(coll1);
System.out.println(coll); // .equals(Object obj); 判断两个集合中的所有元素完全是否相同
System.out.println(coll1.equals(coll)); // .hashCode(); 算集合中的哈希值,
System.out.println(coll.hashCode()); // .toArray(); 将集合转换为数组
Object[] obj = coll.toArray();
for (int i = 0; i < obj.length; i++) {
System.out.println(obj[i]);
} // iterator(); 返回一个Iterator接口实现类的对象,进而实现集合的遍历
Iterator iterator = coll.iterator();
/*
* for (int i = 0; i < coll.size(); i++) {
* System.out.println(iterator.next()); }
*/
// 方式二:使用迭代器Iterator实现集合的遍历
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} @Test
public void testCollection1() {
Collection coll = new ArrayList();
// .seze(); 返回集合元素的个数
System.out.println(coll.size()); // .add(Object obj);向集合中添加一个元素
coll.add(123);
coll.add("AA");
coll.add(new Date());
coll.add("BB");
System.out.println(coll.size());// 4 // .addAll(c);将形参coll中包含的所有元素添加到当前集合中
Collection coll1 = Arrays.asList(1, 2, 3);// 数组转换为集合
coll.addAll(coll1);
System.out.println(coll.size());//
System.out.println(coll);// ArrayList重写了toString方法所以打印了集合中的元素 // .isEmpty(); 判断集合是否为空
System.out.println(coll.isEmpty()); // .clear(); 清空集合元素
coll.clear();
System.out.println(coll.isEmpty());
}
}
集合概述及Collection接口的常用方法的更多相关文章
- Java集合----概述、Collection接口、Iterator接口
Java 集合概述 Java 集合就像一种容器,可以把多个对象的引用放入容器中. Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 Java 集合可分为 Set.Li ...
- Java集合框架之Collection接口
Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
(一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和 ...
- 集合框架之Collection接口
Collection 层次结构中的根接口.Collection表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 coll ...
- Java学习--java中的集合框架、Collection接口、list接口
与数组相比:1.数组的长度固定,而集合的长度可变2.数组只能通过下表访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象 java集合框架:collection(list序列,queue ...
- Java基础之集合框架(Collection接口和List接口)
首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...
- Collection接口的常用方法
[添加功能] boolean add(Object obj); //添加一个元素. boolean addAll(Collection c); //添加一个集合的元素(在后面追加). [删除功能] v ...
- Java Collection集合概述及其常用方法
Collection集合概述 Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合 与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的 ...
- 《java集合概述》
JAVA集合概述: Collection: |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. List提供了增删改查的动作. 增加add(element) add(in ...
随机推荐
- js数组中返回具有某个属性具有特定值的对象
const drDataArr = [{ date: 0, type: '心率', value: 82 },{ date: 1, type: '心率', value: 80 },{ date: 2, ...
- socket编程之时间回射服务器
使用到的函数: // 返回值:读到的字节数,若已到文件尾,返回0:若出错,返回-1 ssize_t read(int fd, void *buf, size_t nbytes); // 返回值:若成功 ...
- 编程坑太多,Map 集合怎么也有这么多坑?一不小心又踩了好几个!
点赞再看,养成习惯,微信搜索『程序通事』,关注就完事了! 点击查看更多历史文章 上一篇 List 踩坑文章中,我们提到几个比较容易踩坑的点.作为 List 集合好兄弟 Map,我们也是天天都在使用,一 ...
- 前端【JS】,深拷贝与浅拷贝的区别及详解!
我是前端小白一枚,为了巩固知识和增强记忆,开始整理相关的知识,方便以后复习和面试的时候看看.OK,让我们进入正题~ 先说说浅拷贝和深拷贝的理解吧,个人是这样理解的:两个对象A.B, A有数据B为空,B ...
- mysql优化–explain分析sql语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...
- gulp基本使用
一.gulp是什么 gulp强调的是前端开发的工作流程,我们可以通过定义task事件定义事件的执行顺序,gulp去执行这些事件,构建整个前端开发的工作流程 gulp常见定义事件,例如: 变更静态资源 ...
- LeetCode--Jewels and Stones && Range Sum of BST (Easy)
771. Jewels and Stones (Easy)# You're given strings J representing the types of stones that are jewe ...
- js中刷新页面的方式总结
1.window.onload / document.onload 2.history.go(num): (1)num为参数,num为正表示前进几个页面,类似于history.forward(): ( ...
- CF#637 D. Nastya and Scoreboard DP
D. Nastya and Scoreboard 题意 一块电子屏幕上有n个数字. 每个数字是通过这样7个线段显示的,现在你不小心打坏了k个线段,给出打坏之后的n个数字的显示方式,问之前的屏幕表示的最 ...
- Android广播时间——实现强制下线功能
目录 思路:强制下线功能需要先关闭掉所有的活动,然后回到登录界面. 步骤 1.关闭所有活动 2.创建BaseActivity类作为所有活动的父类,因为需要用ActivityCollector管理所有活 ...