JAVA基础笔记(十四)类集

JAVA 类集


Collection为保存单值数据的最大父接口1.51.5之后为Collection接口设置了一个Iterable父接口;
    public boolean add(E e)像集合中追加数据;
    clear,contains,remove,size, toArray;
    public Iterator<E>iterator();为Iterator接口实例化;

    Collection 接口下的两个子接口
    List子接口:数据允许重复,保存追加顺序;
    Set子接口:数据不允许重复,内容需要重新整理;



List子接口对Collection接口做了扩充:
    public E set(int index,E element)修改中还定索引的数据;
    public E get(int index)取得指定索引的数据;
    public ListIterator<E> listIterator()为ListIterator接口实例化;
    List的三个子类:
    ArrayList,LinkedList,Vector


请解释ArrayList与LinkedList的区别
ArrayList和LinkedList都属于List的子接口;
ArrayList是针对于数组的包装,LinkedList是针对链表的包装;


旧的子类:Vector
    请解释ArrayList与Vector的区别
ArrayListJDK1.2提供,属于非线程安全操作,性能更高,ArrayList支持Iterator,ListIterator,foreach输出;
Vector:JKD1.0版本提供,属于线程安全操作,性能相对较低,Vector支持Iterator,ListIterator,foreach,Enumnation输出;




Set接口:  HashSet,TreeSet;


请解释TreeSet与HashSet的区别
HashSet:保存的数据无序,而TreeSet保存的数据有序;
HashSet允许存放一个null,而TreeSet不允许存放null;


如果要想在TreeSet中实现排序功能需要在添加的类里实现Comparable;


Hash集合中对于重复元素的大小比较依靠hashCode()与equals()进行比较
Tree集合实现Comparable来实现对象比较;


Map集合:
    Map集合最大的特点就是可以以key=value的方式保存数据
    Collection存数据的目的是为了输出,而Map存放数据的目的是为了查找;
    Map定义的方法:
    public V put(K key, V value)想Map集合中保存数据;
    public V get(Objetc key)根据Key取得对应的value数据
    public boolean containsKey(objecy key)判断key是否存在;
    public Set<Map.Entry<K,V>>entrySet()将Map集合转为Set;
    public Set<K>keySet()取得所有的key
在Map集合之众如果想要保存数据,那么key一定不能重复,重复则覆盖;

在Map中的子类:HashMap,HashTable,TreeMap
请解释HashMap与HashTable的区别
HashMap是JDK1.2提供的,属于非线程安全操作,允许保存一个null,
HashTable是JDK1.0提供的,属于线程安全操作,不允许任何的null保存,
从JDK1.8开始没如果HashMap中的数量过大的时候,会自动将Map集合变为红黑树以保证查询速度。

Iterator输出MapMap.Entry接口提供的操作方法:
    public K getKey();取得key
    public v getValue():取得value;
    Map接口里有一个entrySet()方法,这个方法可已将Map变为Set

Map使用Iterator输出的步骤:
    利用Map中的entrySet()方法将map变为Set
    利用Set中的Iterator输出
    利用Iterator迭代后去除每一个Map.Entry对象,进行分离;
如果要使用自定义类作为Map中的key,自定义类中就要重写HashCode,equals方法;

Collection
    List
        ArrayList
        LinkedList
        Vector
    Set
        HashSet
        TreeSet

Map
    HashMap
    hashtable
    TreeMap
集合中的四种输出:
Iterator
    如果在井陉迭代数据的时候进行删除操作,就会抛出这样的异常(throws CuncurrentModification Exception)
ListIterator
    进行双线迭代:要通过list接口实例化
    hasPrevious()判断是否右前一个元素;
    previous;取得前一个元素;
    要进行顺序输出一次才能进行逆序输出;
foreach
Enumeration
    古老的枚举输出:
    这个接口实例化对象依靠Vector类
    .hasMoreElements()判断是否有下一个元素;
    .nextElement()取得下一个元素;



栈操作:类集里面对于栈提供了专门处理类:Stack,这个类属于Vactor,Vactor有自己的方法操作栈:
    入栈:push(E item)
    出栈:pop()



properties:属于HashTable的子类:
    properties只能保存String类型的key和value;
    Properties的方法:
    设置属性:public Object setProperty(String key, String value);
    取得属性:public String getProperty(String key, String defaultValue),如果不存在返回默认
值;
    输出属性内容:public void store(OutputStream out, String comments) throws IOException;
    输出属性内容::public void load(InputStream inStream) throws IOException。



请解释Collection与Collections的区别
Collection是集合的接口,定义有ListSet的接口,
Collections是一个结合类的工具类,可以方便的操作List,Sep,Map等接口



Stream数据流:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值