JavaNote 2.1集合

本文详细介绍了Java集合框架的核心概念,包括List、Set、Map等接口的特点及应用场景,并列举了常用的集合操作方法,如添加、查询、删除等。此外,还对比了不同集合类的特性,如ArrayList与LinkedList的区别。

一、集合框架图

二、接口说明

List接口:元素可以重复,可以插入多个null元素,是一个有序容器。

Set接口:元素不允许重复,只允许一个null元素,是一个无序容器。

Map接口:Map的每个Entry都持有两个对象,一个键一个值,Map里可以拥有多个相同的值,但必须具有唯一的键。

三、适用场景

ArrayList:线程不安全,可以快速查询,增删慢。

LinkedList:线程不安全,增删快,查询慢。

Vector:线程安全。

HashSet:元素不可重复,不需要排序。

TreeSet:元素不可重复,需要排序。

四、常用方法

List常用方法

public boolean add(E e)向列表的尾部添加指定的元素
public void add(int index, E element)在列表的指定位置插入指定元素
public boolean addAll(Collection c)添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序
public void clear()从列表中移除所有元素
public boolean contains(Object o)如果列表包含指定的元素
public E get(int index)返回列表中指定位置的元素。
public boolean isEmpty()如果列表不包含元素,则返回 true。
public ListIterator listIterator()返回此列表元素的列表迭代器(按适当顺序)。
public E remove(int index)移除列表中指定位置的元素
public Object[] toArray()返回按适当顺序包含列表中的所有元素的数组
ArrayList独有方法
public Object clone()返回此 ArrayList 实例的浅表副本。
public void ensureCapacity(int minCapacity)如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
protected void removeRange(int fromIndex , int toIndex)移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
public void trimToSize()将此 ArrayList 实例的容量调整为列表的当前大小。

LinkedList独有方法

public void addFirst(E e)将指定元素插入此列表的开头。
public E element()获取但不移除此列表的头(第一个元素)。
public E getFirst() 返回此列表的第一个元素。
public boolean offer(E e)将指定元素添加到此列表的末尾(最后一个元素)。
public boolean offerFirst(E e)在此列表的开头插入指定的元素。
public E poll()获取并移除此列表的头(第一个元素)
public boolean removeFirstOccurrence(Object o) 从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表时)。
Map常用方法
public boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。
public boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。
public Set entrySet() 返回此映射中包含的映射关系的 Set 视图
public Collection values()返回此映射中包含的值的 Collection 视图。
public V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除。
public void  putAll(Map m)从指定映射中将所有映射关系复制到此映射中.
五、Collections、Iterator、Comparator

Iterator接口方法

public boolean hasNext()如果仍有元素可以迭代,则返回 true
public E next()返回迭代的下一个元素。
public void remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素,
注:remove方法是在迭代过程中删除元素的唯一安全的方法
Collections提供了很多针对集合的静态方法
public static boolean addAll(Collection c,T ...elements)将所有指定元素添加到指定 collection 中。
public static binarySearch(List list, T key)使用二分搜索法搜索指定列表,以获得指定对象
public static void sort(List list)根据元素的自然顺序 对指定列表按升序进行排序。
public static void sort(List list,Comparator c)根据指定比较器产生的顺序对指定列表进行排序。
public static void reverse(List list)反转指定列表中元素的顺序

注:Map没有Iterator方法,如需对Map进行遍历,可以先调用Map的entrySet方法,得到Set后遍历。


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Test9 {
    public static  void main(String agrs[]){
        Map<Integer,String> map = new HashMap<Integer, String>();
        map.put(4,"我是4");
        map.put(3,"我是3");
        map.put(7,"我是7");
        Set set = map.entrySet();
        Iterator it = set.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        for(Map.Entry<Integer,String> entry :map.entrySet()){//Map.Entry<K,V>()方法返回映射的Collection视图,仅在迭代期间有效
                if(entry.getKey()==3) {
                    entry.setValue("我是1");
                }
            System.out.println(entry);
        }
    }
}
/*
Map.Entry<K,V>接口还有如下几种常用方法
public K getKey()返回与此项对应的键。
public V getValue()返回与此项对应的值。
public V setValue(V value)用指定的值替换与此项对应的值(可选操作)。
*/









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值