集合与迭代器的运用

StringBuffer,它可以根据元素的多少来改变长度。但是,StringBuffer里面存储的内容始终是一个一个的字符,Java替我们考虑到了这一点,可以根据元素的不用,元素的特点和存储的方式不同,提供了一个集合继承体系给我们使用

集合和数组的不同点:

1、数组的长度是不可变的,集合的长度是可变的

2、数组可以存放同一种基本数据类型或者引用数据类型的元素

而集合只能存放引用数据类型,并且集合中可以存放法不同数据类型的元素

(注意:这里我虽然说了集合可以存放不同的数据类型,实际确实也可以这么做,但是呢,

在实际开发中,一个集合存放一种引用数据类型的元素)

集合可以存放各种各样的数据,每种数据的长度,大小以及自身的特点都不一样。

所以,java提供的集合也不应该是单一的,我们要针对不同的需求,使用java提供的不同的集合。

这么多不同的集合,它们底层的数据结构也是不同的,占用的内存空间也是不一样的。不同不重要,我们只需要知道集合是可以用来

存放数据的,不光可以存放,而且可以使用这些数据,比如:查找数据,获取数据,判断数据,删除数据等等。

迭代器中的向下转型是要转成集合中元素的数据类型

Collection:

由于Collection是一个接口,所以无法被实例化,我们要找它一个子类来进行接口多态的方式实例化,这里我们就暂时用ArrayList

来举例。

1、添加功能

boolean add(Object e)确保此集合包含指定的元素(可选操作)

Collection c=new ArrayList();
c.add("hello");
c.add("world");
System.out.println(c);//这里调用的是AbstractCollection类中的toString方法

boolean addAll(Collection c) 将指定集合中的所有元素添加到此集合(可选操作)

//创建集合对象
Collection c=new ArrayList();

//向集合中添加元素
c.add("hello");
c.add("world");
c.add("hello");
c.add("hadoop");
c.add("hive");
c.add("spark");
//创建另一个集合
Collection c1=new ArrayList();
c1.add("hello");
c1.add("world");
c1.add("hadoop");
//boolean addAll(Collection c)将指定集合中的所有元素添加到此集合
System.out.println(c.addAll(c1));

2、删除功能

boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。

//boolean remove(Object o)删除指定元素的单个实例,且是第一个出现的元素
c.add("hello");
c.add("world"//boolean remove(Object o)删除指定元素的单个实例,且是第一个出现的元素
c.add("hello");
c.add("world");
c.add("hello");
System.out.println(c);
c.remove("hello");
System.out.println(c);

boolean removeAll(Collection c) 删除指定集合中包含的所有此集合的元素(可选操作)

//boolean removeAll(Collection c)删除指定集合中包含的所有元素
System.out.println(c.removeAll(c1));

void clear() 从此集合中删除所有元素(可选操作)。

//void clean()从此集合中删除所有元素
c.clear();
System.out.println(c);

3、获取功能

Iterator iterator() 返回此集合中的元素的迭代器。

4、判断功能

boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。

// boolean contains(Object o)如果此集合包含指定的元素,则返回true
System.out.println(c.contains("world"));

boolean containsAll(Collection c) 如果此集合包含指定 集合中的所有元素,则返回true。

//boolean containsAll(Collection<?> c)如果此集合中包含指定集合中的所有元素,则返回true
System.out.println(c.contains(c1));
System.out.println(c);

boolean isEmpty() 如果此集合不包含元素,则返回 true 。

// boolean isEmpty()如果此集合不包含元素,则返回true
System.out.println(c.isEmpty());

5、获取长度方法:

int size() 返回此集合中的元素数

// int size() 集合中的元素数
System.out.println(c.size());

6、求交集功能

boolean retainAll(Collection c) 仅保留此集合中包含在指定集合中的元素(可选操作)。


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值