JAVA 类集
Collection为保存单值数据的最大父接口1.5:1.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输出Map:
Map.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是集合的接口,定义有List,Set的接口,
Collections是一个结合类的工具类,可以方便的操作List,Sep,Map等接口
Stream数据流:
JAVA基础笔记(十四)类集
最新推荐文章于 2024-07-18 23:30:00 发布