小白学java-基础篇(类集)

类集是一个动态数组,对一些实现好的数据结构进行包装(具体概念留日后理解);
1、Collection类:
存在一组单值的最大接口,一般很少直接使用,都是用其子接口;
a、public boolean add(E o)向集合中插入对象;
b、public boolean addAll(Collection<? extends E> c)将一个集合的内容插入进来;
c、public void clear()清除集合中的所有元素;
d、public boolean contains(Object o)判断一个对象是否在集合内;
e、public boolean containsAll(Object<?> c)判断一组对象是否在集合内;
f、public boolean equals(Object o)对象比较;
g、public int hashCode()哈希码;
h、public boolean isEmpty()判断集合是否为空;
i、public Iterator<E>iterator为Iterator接口实例化;
j、public boolean remove(Object o)删除指定对象;
k、public boolean removeAll(Object<?> c)删除一组对象;
l、public boolean retainAll(Object<?> c)保存指定内容;
m、public int size()返回集合的大小;
n、public Object[] toArray()将一个集合变为对象数组;
o、public <T> T[] toArray(T[] a)指定好返回的对象数组类型;

2、LIst类:
常用的接口,大量扩充了Collection接口,允许内容重复;
要想用此接口,需要通过子类实例化,一般用ArrarList类进行实例化;
a、public void add(int index,E element)在指定位置增加元素;
b、public boolean addAll(int index,Collection<? extends E>c)在指定位置增加一组元素;
c、E get(int index)返回指定位置的元素;
d、public int indexOf(Object o)查找指定元素的位置;
e、public int lastIndexOf(Object o)从后向前查找指定元素的位置;
f、public ListIterator<E>listiterator()为ListIterator接口实例化;
g、public E remove(int index)在指定位置删除元素;
h、public List<E>subList(int fromIndex,int toIndex)取出集合中的子集合;
i、public E set(int index,E element)替换指定位置的元素;

LinkedList类:
实现了List接口 ,同时也实现了Queue接口;
Queue类:
采用了先进先出(FIFO)原则;
a、public E element()找到链表表头;
b、public boolean offer(E o)将指定元素增加到链表的末尾;
c、public E peek()找到但不删除链表的头;
d、public E poll()找到并删除链表的头;
e、public E remove()找到并移除链表的表头;

offer,add区别:
一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。
poll,remove区别:
remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似,但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。
peek,element区别:
element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

LikedList类除了能实现以上Queue类的方法,还能实现:
f、public void addFirst(E o)在链表开头增加元素;
g、public void addLast(E o)在链表结尾增加元素;
h、public boolean offer(E o)将指定元素增加到链表结尾;
i、public E removeFirst()删除链表的第一个元素;
j、public E removeLast()删除链表的最后一个元素;

Set接口:
不能重复添加元素,无法像List双向输出,都需要子类进行实例化;
散列的存放:HashSet类;
有序的存放:TreeSet类(如何排序需要深入学习);

3、SortedSet类:
此接口用于排序操作;
a、public Comparator<? super E>comparator()返回与排序有关联的比较器;
b、public E first返回集合中的第一个元素;
c、public SortedSet <E>headSet(E toElement)返回从开始到指定元素的集合;
d、public E last返回集合中的最后一个元素;
f、public SortedSet <E>subSet(E fromElement,E toElement)返回指定对象间的元素;
e、public SortedSet <E>tailSet(E fromElement)从指定元素到最后的元素;

4、集合的输出:
以上都不是标准的集合输出格式,常见的标准输出模式如下:
Iterator类:
最常用的形式,只要碰到集合输出,就一定使用Iterator接口,这是最标准的做法;是一种迭代输出,即先一个一个元素判断是否有内容,有的话则取出;
a、public boolean hasNext()判断是否有下个值;
b、public E next()取出当前元素;
c、public void remove()移除当前元素;

Listiterator类:
双向迭代输出,是Iterator的子接口,只能用List接口实例化;
除了包含Iterator类的方法,还有如下方法:
a、public void add(E,o)将指定元素增加集合;
b、public boolean hasPreviours()判断是否有上个值;
c、public E previours()取出当前元素;
d、public int nextIndex()返回下一个元素的索引号;
e、public int nextPreviours()返回上一个元素的索引号;
f、public void set(E o)替换元素;
!由后向前输出时,必须先由前向后输出

废弃的接口Enumeration类:
由于很多系统还存在这个类,所有有必要掌握。

5、Map接口:
是存放一对值的最大接口;
a、public void clear()清除Map集合;
b、public boolean containsKey(Object key)判断指定的key是否存在;
c、public boolean containsvalue(Object value)判断指定的value是否存在;
d、public Set<Map.Entry<K,V>>entrySet()将Map对象变为Set集合;
e、public boolean equals(Object o)对象比较;
f、public V get(Object key)根据key取得value值;
g、public int hashCoad()返回哈希码;
h、public boolean isEmpty()判断集合是否为空;
i、public Set<K>keySet()取得所有的key;
j、public V put(K key,V value)向集合中加入元素;
k、public void putAll(Map<? extends k,? extends V>t)将一个Map集合中的元素加到另一个Map;
l、public V remove(Object key)根据key删除value值;
m、public int size()返回集合长度;
n、public Collection<V>values()取出全部的value;

Map.Entry接口是Map内部定义的一个接口,专门用来存放一对值;
a、public boolean equals(Object o)对象比较;
b、public K getKey()取得key;
c、public V getValue()取得value;
d、public int hashCoad()返回哈希码;
e、public V setValue(V value)设置value值;

Map接口也需要其子接口实例化,子类有HashMap无序存放、TreeMap有序存放、WeekHashMap弱引用,这些接口都不允许key重复存放;IdentityHashMap可以重复存放key;

Map接口本身不能直接迭代输出其中内容,一般都作为查询使用;

6、SortedMap接口方法与SortedSet相似。

7、集合工具类Collections:
a、public static final List EMPTY_LIST返回一个空的List;
b、public static final Set EMPTY_SET返回一个空的Set;
c、public static final Map EMPTY_MAP返回一个空的Map;
d、public static <T>boolean addAll(Collection<? super T>c,T....a)为集合添加内容;
e、public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T>coll)找到最大的内容,按比较器排列;
f、public static <T>boolean replaceAll (List<T>list, T oldVal,T newVal)用新的内容替换指定的内容;
e、public static void reverse(List<?>list)集合反转;
f、public static <T> int binarySearch(List<? extends Comparable<? super T>>list,T key)查找集合中的指定内容;
g、public static final <T>List<T>emptyList()返回空的List集合;
h、public static final <K,V>Map<K,V>emptyMap()返回空的Map集合;
i、public static final <T>Set<T>emptySet()返回空的Set集合;
j、public static <T extends Comparable<? super T>> void sort(List<T>list)集合排序操作;
k、public static void swap((List<?>list),int i,int j)交换指定位置的元素;

8、其他集合类:
Stack类:进行栈的操作,栈一般采用先进后出的原则;
a、public boolean empty()检测栈是否为空;
b、public E peek()查看栈顶,但不删除;
c、public E pop()出栈,同时删除;
d、public E push(E item)入栈;
e、public int search(Object o)在栈中查找;

Properties类:对属性文件进行操作的类;
a、public Properties()构造一个空的属性类;
b、public Properties(Properties defaults)指定一个属性内容的属性类;
c、public String getProperty(String key)根据属性的key返回value值,如果没有,则返回null;
d、public String getProperty(String key String defaultValue)根据属性的key返回value值,如果没有,则返回defaultValue;
e、public Object setProperty(String key,String value)设置属性;
f、public void list(PrintStream out)属性打印;
g、public void load(InputStream inStream)throws IOException从输入流中取出全部的属性内容;
h、public void loadFromXML(InputStream in)throws IOException,InvalidPropertiesFormatException从XML格式文件中读取内容;
i、public void store(OutputStream out,String comments)throws IOException将属性内容通过输出流输出,并注释;
j、public void storeToXML(OutputStream os,String comment)throws IOException以XML格式输出内容,默认编码;
k、public void storeToXML(OutputStream os,String comment,String encoding)throws IOException以XML格式输出内容,并指定编码;

!!!日后需要深入学习

猜你喜欢

转载自blog.csdn.net/qq_29070549/article/details/79474780