JAVA基础笔记(十四)类集

来源:互联网 发布:windows phone 输入法 编辑:程序博客网 时间:2024/05/01 01:07
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变为SetMap使用Iterator输出的步骤:    利用Map中的entrySet()方法将map变为Set    利用Set中的Iterator输出    利用Iterator迭代后去除每一个Map.Entry对象,进行分离;如果要使用自定义类作为Map中的key,自定义类中就要重写HashCode,equals方法;Collection    List        ArrayList        LinkedList        Vector    Set        HashSet        TreeSetMap    HashMap    hashtable    TreeMap集合中的四种输出:Iterator    如果在井陉迭代数据的时候进行删除操作,就会抛出这样的异常(throws CuncurrentModification Exception)ListIterator    进行双线迭代:要通过list接口实例化    hasPrevious()判断是否右前一个元素;    previous;取得前一个元素;    要进行顺序输出一次才能进行逆序输出;foreachEnumeration    古老的枚举输出:    这个接口实例化对象依靠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数据流:
0 0
原创粉丝点击