JAVA使用泛型存放两种集合_Java基础之集合与泛型

一、集合概述

当我们在使用java进行编程开发时,经常会遇到一些需要集中存放的多个数据,这时我们可以选择“数组”或者“集合”,关于数组的知识可以参考上一篇文章,今天我们主要讲集合的使用。

集合和数组既然都是容器,它们有什么区别呢?

1、数组长度固定,集合长度可变。

数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了,而且生命周期也是不能改变的,还有数组也会做边界检查,如果发现有越界现象,会报RuntimeException异常错误,当然检查边界会以效率为代价。而集合的长度是可变的,可以动态扩展容量,可以根据需要动态改变大小。

2、数组中只能是同一类型的元素且可以存储基本数据类型和对象。集合不能存放基本数据类型,只能存对象,类型可以不一致。

3、集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率

下面有一张集合家族图:

e0a6b50b8485

由上面的图片可以看出:Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口。

e0a6b50b8485

e0a6b50b8485

下面我们一步一步来介绍集合家族的成员。

二、Collection接口

Collection 接口是Set,List,Queue接口的父接口,该接口定义的方法可以也可用于操作子接口集合,具体方法见下图

e0a6b50b8485

Collection的使用:

1、增加和移除元素

importjava.util.ArrayList;

importjava.util.Collection;

/** * Collection的简单使用 */

publicclassTest{

publicstaticvoidmain(String[] args){

Collection collection=newArrayList();

//添加元素

collection.add("str1");

//虽然集合里不能放基本类型的数剧,但是jdk支持自动装箱

collection.add(4);

System.out.println("collection的长度:"+collection.size());

//删除指定元素

collection.remove(4);

System.out.println("collection的长度:"+collection.size());

//判断集合是否包含指定字符串

System.out.println("判断集合是否包含字符串:"+collection.contains("str1"));

collection.add("测试collection");

System.out.println("collection:"+collection);  }

}

运行结果:collection的长度:2collection的长度:1判断集合是否包含字符串:falsecollection:[str1, 测试collection]

add()方法向Collection中增加元素,如果Collection结构改变了,作为add()方法的结果,将返回true。

如果一个Set的实例中已经存在了这个元素,那么不会重复增加,这个Set实例的结构也不会发生变化。

如果在一个List上调用这个方法,而这个List已经存在了这个元素,那么这个List将有两个这个元素。

remove()方法移除一个元素。如果Collection中存在这个元素并且被移除了,这个方法将返回true。如果元素不存在,将返回false。

2、检测一个Collection是否包含一个确定的元素

Collection接口提供contains()和containsAll()两个方法来检查一个Collection是否包含一个或多个元素。

3、迭代一个Collection

Collection collection = new HashSet();

//... add elements to the collection

Iterator iterator = collection.iterator();

while(iterator.hasNext()){

Object object = iterator.next();

//dosomething to object;

}

或者使用for循环

Collection collection =newHashSet();//... add elements to the collection

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值