集合概述及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 ...
随机推荐
- postman(全局变量设置)
全局变量 全局变量作用于整个postman工具及所有环境 1.点击小齿轮进入到变量添加页面,点击Globals添加全局变量 2.输入变量名称和变量值 3.接口中设置变量 4.调用 Globals 变量 ...
- MySQL高级(十三)--- 表锁
前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...
- golang教程汇总
A Tour of Go Go编程基础 Go 语言圣经 中文版
- c++ concurrency
c++的并发涉及到这么几个东西: std::thread std::mutex std::lock_guard std::lock 参考资料: http://en.cppreference.com/w ...
- 组队训练 K K - The Stream of Corning 2
K - The Stream of Corning 2 这个题目不是很难,因为给你的这个S是单调递增的,所以就用优先队列+权值线段树就可以很快的解决了. 这个+读入挂可以优化,不过不用也没关系. #i ...
- Day_12【集合】扩展案例1_利用集合的知识对长度为10的int数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序
分析以下需求,并用代码实现 1.定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的 2.利用集合的知识对数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序 3 ...
- 一文教你快速搞懂速度曲线规划之T形曲线(超详细+图文+推导+附件代码)
运动控制中常用的T速度曲线规划的原理和程序实现,最后给出了测试结果: 如果本文帮到了您,请帮忙点个赞
- vue省市区三级联动(高仿京东)
该栗子是我直接从公司的项目单独拉出来的(懒得重新写一次了),所以代码会有些冗余,下面直接看效果: 接着上代码: html: <template> <div> <div c ...
- 设计模式之GOF23中介者模式
中介者模式Mediator 场景:公司中各个部门需要交互,通过中介总经理进行交互 核心: 如果一个系统中对象之间的联系成网状结构,对象之间多对多,将导致关系极其复杂,这些对象统称为“同事关系” 我们可 ...
- 【hdu1024】简单dp
http://acm.hdu.edu.cn/showproblem.php?pid=1024 最大m字段和,题目就不多说了,经典dp 这题坑爹...首先不说明m的范围(n<=1000000),还 ...