【Java】常用的collection、map子类的属性和方法

Collection和Map以及他们亲戚的全家福

在了解具体属性和方法之前,我们先看一张全家福:
在这里插入图片描述
1、Collection和Map都来源于Java.util包,是非常实用常用的数据结构。具体的继承实现关系如上图,先整体有个印象,再依次介绍各个部分的方法。
2、java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
3、Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。
4、Iterator(迭代器)是一种模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。

Collection的主要方法

boolean add(Object o)添加对象到集合
boolean remove(Object o)删除指定的对象
int size()返回当前集合中元素的数量
boolean contains(Object o)查找集合中是否有指定的对象
boolean isEmpty()判断集合是否为空
Iterator iterator()返回一个迭代器
boolean containsAll(Collection c)查找集合中是否有集合c中的元素
boolean addAll(Collection c)将集合c中所有的元素添加给该集合
void clear()删除集合中所有元素
void removeAll(Collection c)从集合中删除c集合中也有的元素
void retainAll(Collection c)从集合中删除集合c中不包含的元素

Collection的子类继承它的所有方法。

List的主要方法

void add(int index,Object element)在指定位置上添加一个对象
boolean addAll(int index,Collection c)将集合c的元素添加到指定的位置
Object get(int index)返回List中指定位置的元素
int indexOf(Object o)返回第一个出现元素o的位置.
Object remove(int index)删除指定位置的元素
Object set(int index,Object element)用元素element取代位置index上的元素,返回被取代的元素
void sort()

ArrayList、LinkList、Vector拥有所有Collection和List的方法。
补充:
将array转换成ArrayList:

String[] cArray = new String[]{"a","b","c","d","e"};
ArrayList<String> arrayList=new ArrayList<String>(Arrays.asList(cArray));
System.out.println(arrayList);

将ArrayList转换成array:

String[] stringArr = new String[arrayList.size()];
arrayList.toArray(array);

HashSet

HashSet类继承Collection类所有方法。

Stack

Object push(Object element):将元素推送到堆栈顶部。
Object pop():移除并返回堆栈的顶部元素。如果我们在调用堆栈为空时调用pop(),则抛出’EmptyStackException’异常。
Object peek():返回堆栈顶部的元素,但不删除它。
boolean empty():如果堆栈顶部没有任何内容,则返回true。否则,返回false。
int search(Object element):确定对象是否存在于堆栈中。如果找到该元素,它将从堆栈顶部返回元素的位置。否则,它返回-1。
stack的方法转载自:java中的栈 stack类基本操作(一)

HashMap

void clear():从HashMap中删除所有的映射。
Object clone():返回此 HashMap实例的浅拷贝(键和值本身不被克隆)。
boolean containsKey(Object key):如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value):如果此HashMap将一个或多个键映射到指定值,则返回 true 。
Set<Map.Entry<K,V>> entrySet():返回此HashMap中包含的映射的Set视图。可以通过for循环得到单个对象,然后使用getKey()和 getValue()方法得到键值。
V get(Object key):返回到指定键所映射的值,或 null如果此映射包含该键的映射。
boolean isEmpty():如果此HashMap不包含键值映射,则返回 true 。
Set<K> keySet():返回此HashMap中包含的键的Set视图。
V put(K key, V value):将指定的值与此映射中的指定键相关联。
void putAll(Map<? extends K,? extends V> m):将指定HashMap的所有映射复制到此HashMap。
V remove(Object key):从该Map中删除指定键的映射(如果存在)。
boolean remove(Object key):删除指定key值的映射。
V replace(K key, V value):只有当key映射到某个值时,才能替换指定键的条目。
boolean replace(K key, V oldValue, V newValue):仅当当前key映射到指定的值时,才能替换指定键的条目。
int size():返回此HashMap中键值映射的数量。
Collection<V> values():返回此HashMap中包含的值的Collection视图。

Iterator

Java中的Iterator功能比较简单,并且只能单向移动。使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

Object next():获得序列中的下一个元素,返回的类型是Object,需要进行类型转换。
boolean hasNext():检查序列中是否还有元素。
void remove():将迭代器新返回的元素删除。

遍历Collection的例子:

ArrayList<String> array = new ArrayList<String>();
array.add("aa");
array.add("bb");
array.add("cc");

//遍历ArrayList方法一
for (Iterator iter = array.iterator(); iter.hasNext();) {
    String str = (String)iter.next();
    System.out.println(str);
}
//遍历ArrayList方法二
Iterator iter = array.iterator();
while(iter.hasNext()){
    String str = (String) iter.next();
    System.out.println(str);
}

遍历HashMap的例子:

HashMap<String, String> map=new HashMap<String, String>();
map.put("111", "aaa");
map.put("222", "bbb");

//方法一:使用Iterator的方法
for(Iterator<Map.Entry<String, String>> iterator=set.iterator();iterator.hasNext(); ) {
	Map.Entry<String, String> entry=(Map.Entry<String, String>)iterator.next();
	System.out.println(entry.getKey()+"->"+entry.getValue());
}
//方法二:直接使用for(:)遍历set
Set<Map.Entry<String, String>> set=map.entrySet();
for(Map.Entry<String, String> ele : set) {
	System.out.println(ele.getKey()+"->"+ele.getValue());
}
发布了61 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41427568/article/details/104252535