集合框架概述

一:集合概念

对象的容器,实现了对对象的操作,类似数组功能

二:集合和数组的区别

(1) 数组长度固定,集合长度不固定

(2) 数组可以存储基本类型数据和引用数组类型,集合只能存储引用类型数据·

.包的位置: java.util.*

COllection体系集合

 

三,迭代器:专门用来遍历集合的一种方式

hasNext();有下一个元素嘛有的返会true没有返回false

next(); 获取下一个元素

remove(); 删除元素

四:List接口的特点:有序有下标,可以重复

五:List常见实现类

ArrayList:声明方式: ArrayList name = new ArrayList( );
LinkedList  LinkedList linkedList = new LinkedList();

ArrayList:

.数组结构实现,查询快,增删慢

.JDK1.2版本,运行效率快,线程不安全

源码分析:

DEFAULT_CAPACITY=10; 默认容量

注意:如果没有像集合中添加元素时,容量为0,添加任意一个元素之后容量为10

每次扩容扩容原来的一点五倍;

elementData 存放元素的数组

size 实际元素个数

                                      Vector vector=new Vector();

VEctro:

.数组结构实现,查询快,增删慢

.JDK1.0版本,运行效率慢,线程安全

                           LinkedList linkedList = new LinkedList();

LinkedList:

.链表结构:增删快,查询慢

  LinkedList linkedList = new LinkedList();

泛型

.java泛型是JDk1.5中引入的一个新特性,其本质是将参数化类型,把类型作为参数转递

.常见形式有泛型类,泛型接口,泛型方法

.语法:

.<T,....>T称为类型站位符,表示类型的一种

.好处:

.(1)提高代码的重用性

.(2)防止类型转换异常,提高代码的安全性

泛型集合

概念:参数话类型,类型安全的集合,强制集合元素必须一致

特点;

.编译时即可检查,而非运行时抛出异常

.访问时,不必类型转换(拆箱)

.不同泛型之间不能相互赋值,泛型不存在多态

Set接口

set方法

.add()向集合添加新元素
.addFirst()在集合第一位添加元素
.addLast()在集合最后一位添加元素
.contains()检测集合中是否包含括号内的元素 返回值为boolean
.remove()括号填下标 删除括号下标的元素
.removeFirst()删除首位元素
.removerLast()删除末尾元素
在Map集合中 括号内填键名进行删除
.get()获取元素
.getFirst()获取首位元素
.getLast()获取末尾元素
.set(下标,内容)替换掉刻下标的内容
.clear()清空集合中的数据元素
.size()返回、查询 集合中的元素个数
.isEmpty()判断是否是一个空集合 返回值为boolean
Collections.sort©对集合字符或数字进行排序

                            Set<String > set = new HashSet();
                                //泛型String
                    
  • HashSet:

    基于hash'co'de实现元素不会重复

    当存入新的哈希码相同时,会调用equals进行确认,如果结果为ture,则拒绝后者存入


                             TreeSet<Person> treeSet = new TreeSet();
                    //泛型Person

  • TreeSet:

基于排序实现元素不会重复

                          **实现了Sor'te'dSet接口,对集合元素自动排序**

元素对象类型必须实现Comparable接口,指定排序规则

通过compareTo方法确定接口是否为重复元素

map集合

 

.put(“键”,对象)添加数据
.keySet()输出键集合
.containsKey(对象/变量或键)判断括号内的数据是否存在

Map父接口

  • 特点:存储一对数据(Key-Value ),无序的。无下标,键不可以重复,值可以重复

  • 方法:

    • V put(K key,V value ) //将对象存入集合,关联键值。key若重复则覆盖原值

      object get (object key) //根据获取对应的值

      keySet(K) //返回所有key

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

      entrySet<Map.Entry<K,V>> //键值匹配的set集合

  • HashMap

    • JDK1.2版本,线程不安全,运行效率快;允许用null 作为key或是value.

                         HashMap map = new HashMap<String,String>();
  • Hashtable:

    • JDK1.0版本线程,线程安全,运行效率慢;不允许null作为key 或是value

  • Propertie:

    • Hashtable的子类,要求和key和value都是String。通常用于配置文件的读取

  • TreeMap:

  • 实现了storedMap接口(是Map的子接口),可以对ke'y自动排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值