Java集合入门大纲

一、什么是集合

  • 集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用
  • 集合类存放于java.util包

下面我们通过图形表来看一下:

继承
继承
继承
继承
Collection接口
Map接口
Iterable接口
List接口
Set接口
Queue接口

二、集合有哪些,它们是怎样的关系

  • 我们众所周知的集合一般有三种

     *它们分别是   Set集合、List集合和Map集合*
    
  • 而集合主要分为Collection接口和Map接口

     List、Set、Queue继承于Collection接口,而Map单独成为Map集合
     
     List分为三个子类,ArrayList,LinkList和Vector 
     Set分为HashSet,TreeSet和LinkedHashSet 
     Queue是队列,有着先进先出的特点
     而Map衍生出的集合分为HashMap,HashTable,TreeMap和LinkedHashMap
    

三、集合之间各自的特点

	List的特点:	有序的,可以添加重复元素
	遍历方式:通过下标遍历,增强for循环(fore),迭代器Iterator		
		* ArrayList:它是数组形式的集合,按照插入顺序来保存元素,可以利用下标来查找值(查询快,增删慢)
		* LinkList:它是链表结构的集合(增删快,查询慢)
		* Vector:它也是数组形式的集合,它使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些
		* 注:ArrayList和Vector的区别:
				1、同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的,不是同步的
				2、数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
	
	
	Set的特点:	无序的,元素不可重复
	遍历方式:增强for循环(fore),迭代器Iterator
		* HashSet:速度最快,元素是无序的,允许元素为null但只能有一个元素为null
		* TreeSet:(树形集合)按照比较结果的升序来保存元素
		* LinkedHashSet:按照被添加的顺序来保存元素

	
	Map的特点:   键值对的形式存储数据,键不可重复值可重复
	遍历方式:1、加强for循环map.keySet(),然后通过键key获取到value值
				for(String s:map.keySet()){
         				System.out.println("key : "+s+" value : "+map.get(s));
    			 }
			2、Map.Entry<String, String>的加强for循环遍历输出键key和值value
     				for(Map.Entry<String, String> entry : map.entrySet()){
         				System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
    			 	}
		* HashMap:无序,提供了最快的访问技术
		* TreeMap:(树形集合)按照比较结果的升序来保存键
		* LinkedHashMap:按照查询顺序来保存键,同时也HashMap的查询速度

四、Array(数组)与ArrayList(集合)有什么区别

  1. ArrayList是Array的复杂版本
  2. 存储的数据类型:Array只能存储相同数据类型的数据,而ArrayList可以存储不同数据类型的数据
  3. 长度的可变:Array的长度是固定的,而ArrayList的长度是可变的

五、HashMap的实现原理
存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量
获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值