集合概述

/*

学习这东西就是要坚持,前方一定是光明的,千万不能着急

*/

java 集合

java集合类是工具类的一种,是一个容器,用于存储数量不能的多个对象(只能保存对象,实际上是对象的引用),并实现常用的数据结构。

还可以保存具有映射关系的关联数组。

分为set(无序,不可重复)、list(有序,可重复)、map(具有映射关系)、queue(队列集合)四种体系。

java所有的集合类都保存在java.util包下,主要由Collection和Map两个跟接口派生而出。

Collection接口和Iterator接口

Collection接口派生出:Set、List、Queue;定义了如下操作集合的方法;

//boolean add(object o);用于向集合中添加一个元素,成功返回true
//boolean addAll(Collection c)把集合c中的所有元素添加到指定集合中
//int size()确定集合中元素的个数
//Boolean contains(object o)检测集合中是否包含传入的
//boolean containsAll(Collecton c)检测集合中是否包含给定集合c中的所有元素
//boolean isEmpty()如果集合为空返回true,否则FALSE
//void clear()清楚集合所有元素,集合长度归零
//boolean remove(object o)删除集合中指定的元素(可以是一个也可以是多个)
//boolean removeAll(Collection c)删除集合中给定集合c的所有元素
//boolean retainAll(Collection c)删除集合c里不包含的元素,即取得和集合c的交集
//object toArray()把集合转化成对应数组
//iterator iterator()返回一个iterator对象,用于遍历集合中的元素
import java.util.*;
public class testCollection {
public static void main(String[] args){
Collection c=new ArrayList();
c.add("Math");
c.add(1990);
System.out.println("集合中元素的个数为:"+c.size());
c.remove(1990);
System.out.println("集合中元素的个数为:"+c.size());
c.add("History");
System.out.println(c);//输出  [Math, History]
Collection books=new HashSet();
books.add("History");
books.add("Math");
System.out.println("c集合中是否完全包含books集合:"+c.containsAll(books));
c.remove("Math");
System.out.println("c集合中是否完全包含books集合:"+c.containsAll(books));
books.retainAll(c);
System.out.println("books里的集合元素"+books);
c.removeAll(books);
System.out.println("c里的集合元素"+c);
books.clear();
}
}

以上是Collection接口实现的ArrayList和HashSet集合,当使用System.out.println()时的输出格式是[ele1,ele2,ele3]形式,显然Collection接口重写了toString()方法;

使用iterator接口遍历集合(迭代访问),如下三个方法:

//boolean hasNext()如果有下一个就返回true
//Object next()返回集合的下一个元素
//void remove()删除集合里上一次next方法返回的元素
import java.util.*;
public class testIterator {
public static void main(String[] args){
Collection books=new HashSet();
books.add("History");
books.add("Math");
books.add("English");
Iterator it=books.iterator();
while(it.hasNext()){
String book=(String)it.next();
System.out.println(book);
if(book.equals("English")){
it.remove();
}
}
System.out.println(books);
}
}

Iterator并不是把集合中的元素传递给迭代变量,而是把集合中元素的值传递,所以通过Iterator对集合元素的值进行修改不起作用。

在使用Iterator来迭代Collection集合过程中,不能修改集合元素的值,否则会抛出异常(多线程中容易出这种错误)

另外也可以使用foreach语法遍历集合,同样在遍历过程中也不能修改集合元素

import java.util.*;
public class testIterator {
public static void main(String[] args){
Collection books=new HashSet();
books.add("History");
books.add("Math");
books.add("English");
for(Object obj : books){
String book=(String)obj;
System.out.println(book);
}
System.out.println(books);
}
}
时间: 2024-08-26 08:57:38

集合概述的相关文章

Java基础知识强化之集合框架笔记38:Set集合之Set集合概述和特点

1. Set集合概述和特点 Collection            |--List                     有序(存储顺序和取出顺序一致),可重复            |--Set                     无序(存储顺序和取出顺序不一致),唯一  HashSet:它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变. 注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序, 而你的顺序恰好和它的存储顺序一致,这代表不了有序,你可以

Map集合概述和特点

A:Map集合概述和特点(Set底层依赖的是Map) 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双列的(是双列集合的根接口),Collection是单列的(是单列集合的根接口) Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构值针对键有效,跟值无关;如:TreeMap:键是用二叉树算法,HashMap:键是hash算法, Collection集合的数据结构是针对元素有效 图解:

java高级特性之集合概述

java中的集合概述 map 接口 总结 java集合学习 1 java中存储数据的方式 1 数组 (基本数据类型+引用数据类型).2 集合(对象) 数组存储数据的缺点1:数组一旦创建,长度固定 2:数组不能直接确定有效元素的个数 java中的集合概述: java集合接口:Collection 接口 和Map 接口 (Collection接口 表示不按照添加顺序存放对象的集合,而且集合内的元素可以重复即 无序可重复 集合,它是List,Set,Queue..接口的父接口) Collection

java之集合概述

集合也称容器:从大的类别分成两类:Collection和Map,也即:单列和双列列表. java编程思想中一张图说明该体系的整体结构:其中黑色着重的类是经常使用的类. 1 Collection Collection:作为单列集合的根接口.该类集合的继承体系如下: Collection分为两大类:List和Set 1)List: 特点:有序的 collection(也称为序列):列表通常允许重复的元素.       List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Ite

C#集合概述

C#集合概述 2016-11-29 集合 顺序排列 连顺存储 直接访问方式 访问时间 操作时间 备注 Dictionary 是 Key Key:O(1) O(1) 访问性能最快,不支持排序 SortedDinctionary 顺序排列 否 Key Key:O(log   n) O(log   n) 快速访问和支持排序的折衷 SortedList 顺序排列 是 Key Key:O(log   n) O(n) 和SortedDictionary相似,只是内部用数据替代树作为存储结构. List 使用

跟王老师学集合(一)为什么要使用集合和Java集合概述

为什么要使用集合和Java集合概述 主讲人:王少华  QQ群号:483773664 学习目标 1 理解为什么使用集合 2 掌握Java集合框架 一.使用数组缺陷: 在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现.例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息.但是采用数组存在以下一些明显的缺陷: 数组长度固定不变,不能很好适应元素数量动态变化的情况.若要存储大于50个狗狗的信息,则数组长度不足:若只存储20个狗狗的信息,则造成内存空间浪费 可通过数组名.le

《java集合概述》

1 JAVA集合概述: 2 3 Collection: 4 |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. 5 List提供了增删改查的动作. 6 增加add(element) add(index,element); 7 删除remove(element) remove(index); 8 修改set(index,element); 9 查询get(index); 10 |---Vector:是可增长的数组结构.是同步的.增和查速度都慢,效率很低.目前不在使用.

Java集合(一):Java集合概述

注:本文基于JDK 1.7 1 概述 Java提供了一个丰富的集合框架,这个集合框架包含了许多接口.虚拟类和实现类.这些接口和类提供了丰富的功能,能够满足基本的聚合需求.下图就是这个框架的整体结构图: 可以看见,这个框架非常大,大到吃惊的地步.这个图的左面部分是接口,右面部分是类,中间的线代表了右面的类实现了左面的哪些接口.比如,AbstractList类实现了List接口,那么继承自AbstractList类的子类都实现了这个接口.还有,如果一个类实现了一个接口,那么这个类也实现了这个接口的所

Java基础_集合概述以及Colletion集合

集合 1.集合的概述 (1).集合的来由 我们学习的是面向对象的语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们必须把这个对象进行 存储,而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的只是里面,有哪一些是容器类 型的呢? 数组和StrngBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能够选择数组,也就是对象数组. 而对象数组又并不能够适应变化的需求,因为数组的长度是固

一大波Java来袭(五)——Java集合概述

把"Java集合"比作是容器,可以把多个对象(实际:是对象的引用),扔在容器中. JDK1.5之前,被丢进集合中的对象,会丢失起数据类型.默认为Object类型 JDK1.5之后,不会丢失数据类型,因为引入了"泛型"(作为下文重点) 本文将结合数据结构,重点讲述Java的4种集合体系的功能和用法,并给出不同应用场景改如何选择? 一.同样是用于"存储数据",既可以使用"数组",有可以使用"集合",有什么区别吗