云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 集合类和接口

集合类和接口

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 9:32:27

Collection库是在java.util包下的一些接口和类,只能用来存放对象,不像数组那样有容量大小的限制。 常见的问题:

是否要求内部元素同为一个类型的元素 是否线程安全的

是否允许元素重复

如何判断两个元素是否相同 hashcode() equals()

1. Collection接口

特性:其中的元素没有特定的顺序,元素也可以重复。

该接口的实现类是AbstractCollection类,其两个子类是AbstractList和AbstractSet。均为抽象类。 2. Set接口

特性:存放在里面的元素没有特定的顺序,但元素不可以重复(对数据对象而言其值相同则只存一份)。

HashSet类实现了Set接口。

子接口为SortedSet,实现该子接口的类为TreeSet类。 TreeSet中的数据不能重复,且数据类型需相同。 3. List接口

特性:数据具有特定的顺序,元素是可重复的。 实现该接口的类有LinkedList和ArrayList

4. Iterator接口

Collection对象都有一个iterator方法产生Iterator对象

而List中的数据是有序的,因而还有个特别的Iterator接口,即ListIterator,可以向前和向后遍历list。 5. Map接口

不是继承自Collection接口,需要存放关键值key和一个对应的数据value。

实现其接口的有HashMap类和TreeMap类,其中TreeMap类还实现了SortedMap接口。 6.JDK1.1中的Collection库只有List和 Map,前者对应的实现类是Vector,后者对应的实现类是Hashtable类。Vector还有个子类,Stack。 Iterator有对应的接口Enumeration接口。 新旧库的差别:

旧的类是Tread-Safe的,即Hashtable、Vector类中的方法是synchronized的,在多线程的程序中使用它们来存放数据可以确保数据的一致性,但在单线程的程序中使用则会降低效率。 新的库中的类执行效率会比较快,但用到Threads时就需要小心。但新的库也可以产生有synchronized的Collection对象,使用Collection类所提供的类方法“synchronizedXXXX”,来将XXXX接口转换成有synchronized保护的XXXX接口。

一、数组、集合

数组、集合:都是一种容器,用一个对象管理多个对象; 数组:不能自动增长;只能存放同类型的元素

集合:能自动扩容;部分集合允许存放不同类型的元素;

二、学习这些集合类要掌握哪些东西:

1)怎样得到(选择)集合对象; 2)怎样添加元素 3)怎样删除元素

4)怎样循环遍历没一个元素

三、list、set、map

collection:父接口;

Set:接口 ---一个实现类: HashSet

List:接口---三个实现类: LinkedList,Vector,ArrayList SortedSet:接口---实现类:TreeSet

1、List:

List:有序列表,允许存放重复的元素; 实现类:

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始; LinkedList:链表实现,增删快,查询慢 Vector:数组实现,线程安全,重量级

2.Set:

无序集合,不允许存放重复的元素;

实现类 HashSet:equals返回true,hashCode返回相同的整数;哈希表;

子接口SortedSet:对Set排序 实现类 :TreeSet:二叉树实现的; 看API: 泛型:表示一个对象; Iterator:接口,迭代器;

java.util; hasNext(); next(); remove();

Iterable:可迭代的,访问的 ;

java.lang;实现了可迭代的接口就可以用迭代的方式访问; 只需实现 iterator();方法即可;Iterator iterator(); 三种循环的访问方式: for(int i=0;i

只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种; ArrayList:自动扩容,是数组照搬过来的;

3.Map

HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放; HashSet 的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问; 如果有两个Key重复,那么会覆盖之前的;

Hashtable:线程安全的

Properties:java.util.Properties; key和value都是String类型,用来读配置文件;

HashMap与Hashtable区别:

HashMap线程不安全的,允许null作为key或value; Hashtable线程安全的,不允许null作为key或value;

TreeMap: 对key排好序的Map; key 就是TreeSet, value对应每个key; key要实现Comparable接口或TreeMap有自己的构造器;

HashSet:remove(Object o)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象; 定义一个Map; key是课程名称,value是Integer表示选课人数; map.put(cou,map.get(cou)+new Integer(1));

四、Hashtable、Properties

1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 法。

2,Properties:继承自Hashtable,比 Hashtable 更严格 属性列表中每个键及其对应值都是一个字符串。 常用方法 String getProperty(String?key) 和 setProperty(String key,String value); 用法:我在C盘下建了一个名为 yy.dat 的文件,文件的内容为:

name=hehe password=12345

执行以下程序,输出 hehe,可见用 Properties 可以很方便的解析配置文件 Properties p = new Properties();

for--each 循环: for(Object obj:list){ System.out.println(obj); }

搜索更多关于: 集合类和接口 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Collection库是在java.util包下的一些接口和类,只能用来存放对象,不像数组那样有容量大小的限制。 常见的问题: 是否要求内部元素同为一个类型的元素 是否线程安全的 是否允许元素重复 如何判断两个元素是否相同 hashcode() equals() 1. Collection接口 特性:其中的元素没有特定的顺序,元素也可以重复。 该接口的实现类是AbstractCollection类,其两个子类是AbstractList和AbstractSet。均为抽象类。 2. Set接口 特性:存放在里面的元素没有特定的顺序,但元素不可以重复(对数据对象而言其值相同则只存一份)。 HashSet类实现了Set接口。 子

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com