爪哇的学习(集合框架)【请结合java API 观察java源码进行学习】

集合的概念

对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的 功能。

• 和数组区别:

• 数组长度固定,集合长度不固定

• 数组可以存储基本类型和引用类型,集合只能存储引用类型

• 位置:

java.util.*; 

collection

 

特点:

代表一组任意类型的对象,无序、无下标、不能重复。

创建集合

 Collection collection = new ArrayList();

常用方法

  1. 添加元素 collection.add();

  2. 删除元素

    collection.remove();

    collection.clear();

  3. 遍历元素(重点)

    1. 使用增强for(因为无下标)

      for(Object object : collection){ }

    2. 使用迭代器

 

Iterator<String> is = names.iterator();
		
		while(is.hasNext()) {
			System.out.print(is.next() + "\t");

 

判断 collection.contains(); collection.isEmpty();

list子类

特点:有序有下标元素可重复。

创建集合和常用方法与collection相似。

返回子集合 :

sublist(x, y); 左闭右开

list的实现类:

1 ArrayList

ArrayList特点:可用于数据的查询,查询速度更快

 可以理解为可变长数组

2LinkedList

LinkedList特点: 在列表的中间进行插入和删除效率更高

是一个双向链表

3Vector:

与ArrayList一样

相对而言安全性更高

但是效率不如ArrayList高

set集合

特点:无序、无下标、元素不可重复

方法:全部继承自Collection中的方法

增、删、遍历、判断与collection一致

HashSet

存储结构:哈希表(数组+链表+红黑树)

存储过程(重复依据)

  1. 根据hashCode计算保存的位置,如果位置为空,直接保存,若不为空,进行第二步
  2. 再执行equals方法,如果equals为true,则认为是重复,否则形成链表

新建集合 HashSet<String> hashSet = new HashSet<String>();

添加元素 hashSet.add( );

删除元素 hashSet.remove( );

遍历操作

​  增强for for( type type : hashSet)

TreeSet

特点

  • 基于排列顺序实现元素不重复
  • 实现SortedSet接口,对集合元素自动排序
  • 元素对象的类型必须实现Comparable接口,指定排序规则
  • 通过CompareTo方法确定是否为重复元素

存储结构:红黑树

创建集合 TreeSet<String> treeSet = new TreeSet<>()

添加元素 treeSet.add();

删除元素 treeSet.remove

Map接口

1. 用于存储任意键值对(key - value)

2. 键:无序、无下标、不允许重复(唯一)

3. 值:无序、无下标、允许重复

方法

1. V put(K key, V value) 将对象存到集合中,关联键值

2. Object get(Object key) 根据键获得对应的值

3. Set<K> 返回所有的Key

4. Collection<V> values() 返回包含所有值的Collection集合

5. Set<Map.Entry<K, V>> 键值匹配的Set集合

HashMap

存储结构:哈希表(数组+链表+红黑树)

使用key可使hashcode和equals作为重复

增、删、遍历、判断与上述一致

TreeMap

实现了SortedMap接口(是map的子接口),可以对key自动排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值