用一个集合这么难?

集合





































 

有序否

允许元素重复否

Collection

List

Set

AbstractSet

HashSet

TreeSet

是(用二叉树排序)

Map

AbstractMap

使用key-value来映射和存储数据,Key必须惟一,value可以重复

HashMap

TreeMap

是(用二叉树排序)

目的:


用数组存储数据时只能具有简单的组织形式,而且大小有时候也不确定的需求也无法满足,因此需要具有更多操作的集合来进行数据存储

分类:

Vector(矢量)

Bitset(位集)

Stack(栈)

Hashtable(散列表):

在散列表中有一系列问题,再存入一个对象充当key的时候,存入方式的…

缺点:


  1. 由于对于通用性的考虑,集合存储对象时,会丢弃对象的类型,任何对象都可以进入集合

  1. 正式使用之前,必须进行"造型",指定对象的类型

Collection接口方法:






































基本操作

boolean add(Object element)

添加一个元素

boolean remove(Object element)

删除一元素

查询操作

int size()

返回元素数目

boolean isEmpty()

判断是否为空

boolean contains(Object element)

判断是否包含某元素

Iterator iterator()

创建一个迭代器

组操作

boolean containsAll(Collection
collection)

另一集合是否是当前集合的子集

boolean addAll(Collection collection)

void clear()

删除所有元素

void removeAll(Collection collection)

去除集合的一个子集

void retainAll(Collection collection)

保留集合的一个子集

用一个集合这么难?,布布扣,bubuko.com

时间: 2024-10-21 18:20:11

用一个集合这么难?的相关文章

枚举一个集合的所有子集

一个神奇的算法,在题目中看到的,单独拿出来整理枚举一个集合S(用一个二进制表示)的所有子集S0: for(int S0 = S; S0; S0 = (S0-1)&S){}

【我所认知的BIOS】—> uEFI AHCI Driver(4) — 第一个Protocol真难搞

[我所认知的BIOS]-> uEFI AHCI Driver(4) - 第一个Protocol真难搞 LightSeed 4/23/2014 文章对EFI_DRIVER_BINDING_PROTOCOL的每一个 成员的解说是重点.它是我们遇到的第一个uEFI里面的protocol所以我都尽量把它讲的够细.下一篇文章開始就真正进入到install protocol的函数里面去了. [右键点击图片,在新窗体打开是能够放大看的] [我所认知的BIOS]-> uEFI AHCI Driver(4) -

有一个集合,判断集合里有没有“world”这个元素,如果有,添加“javaee”

// 有一个集合,判断集合里有没有"world"这个元素,如果有,添加"javaee" List list = new ArrayList(); list.add("world"); list.add("java"); list.add("hello"); //ConcurrentModificationException /*Iterator it = list.iterator(); while(it.

求一个集合的所有子集问题

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/31042651 作者:小马 一个包含n个元素的集合,求它的所有子集.比如集合A= {1,2,3}, 它的所有子集是: { {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}, @}(@表示空集). 这种问题一般有两种思路,先说说第一种,递归.递归肯定要基于一个归纳法的思想,这个思想用到了二叉树的遍历,如下图所示: 可以这样理解这张图,从集合A的每

湘潭大学OJ1199Number Game(求一个集合的最小公倍数)

题目描述 给你一个有N个数的集合S和一个数X,判断是否存在S的一个子集,子集里的数的最小公倍数正好是X. 输入 第一行是数据组数T. 接下来有多组数据,每组数据包含两行: 第一行有2个数N和X,1<=N<=100000 ,X<=10^9. 第二行给出N个数,1<=S[i]<=10^9. 输出 对于每一组数据,输出一行"Case #X: Y",X是第几组数据,Y是Yes或No. 样例输入 2 4 20 2 3 4 5 3 61 3 4 5 样例输出 Case

返回一个集合对象,同时这个集合的对象的属性又是一个集合对象的处理方法(ViewModel)

如果遇到需要返回一个集合对象,其中该集合中的属性又是一个集合.第一种:可在考虑用外键关联,比如在控制器中可以采用预先加载的方式加载关联的数据,比如 RoleManager.Roles.Include<x =>r.Users>.ToList(); 第二种 可以考虑使用视图模型ViewModel的方式.第二种方式的适用范围更加广泛,第一种方式使用较为简单,但使用的场合有限. 一.建立视图模型 ViewModel public class IndexRoleViewModel { public

android 一个集合问题导致不得不说的故事

啥也不说,先看图,然后给你讲需求! 技能中只能添加三项,如果选择超过三个就给提示,选中的可以再次点击就是删除,这个肯定不难,但是做着发现一个问题,在这记录下,我的做法是把定义一个集合,然后当用户点击的时候判断这个是否在集合中如果在集合中就删除,如果不在集合中就添加,然后就adapter.notifyDataSetChanged()就完事,先把我写的点击事件相关逻辑贴一下: @Override public void onItemClick(AdapterView<?> arg0, View a

python 实现求一个集合的子集

概要 今天偶然看到有个关于数学中集合的问题,就突发奇想的想用python实现下求一个集合的子集. 准备 我当然先要复习下,什么是集合,什么是子集? 比较粗犷的讲法,集合就是一堆确定的东西,细致一点的讲法呢,就是由一个或多个确定的元素所构成的整体,集合中的东西称为元素. 集合有一些特性: 1.确定性 给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现. 2.互异性 一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.有时需要对同一元素

42.C#--集合的使用,创建一个集合,里面添加一些数字,求平均值与和,以及最大值,最小值

static void Main(string[] args){//42.集合的使用,创建一个集合,里面添加一些数字,求平均值与和,以及最大值,最小值//创建一个集合ArrayList list = new ArrayList();//向集合添加一些数字list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });//新建sum变量来存储和int sum = 0;//新建一个max来存储最大值int max = (int)list[0];//新建一