Java中List、Set、Map集合的详细使用方法

List、Set、Map用法

List集合详细使用方法

  • 有序集合(也称为序列 )。 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。
  • 与集合不同,列表通常允许重复的元素。 更正式地,列表通常允许元素e1和e2成对使得e1.equals(e2) ,并且如果它们允许空元素,它们通常允许多个空元素。 有人可能希望实现一个禁止重复的列表,当用户尝试插入时会抛出运行时异常,但是我们预计这种使用是罕见的。
  • 将List转化为int数组:list.stream().mapToInt(Integer::valueOf).toArray();

List常用的方法

add(E e) 
将指定的元素追加到此列表的末尾(可选操作)。  

void add(int index, E element) 
将指定的元素插入此列表中的指定位置(可选操作)。
  
boolean addAll(Collection<? extends E> c) 
按指定集合的迭代器(可选操作)返回的顺序将指定集合中的所有元素附加到此列表的末尾。 
 
boolean addAll(int index, Collection<? extends E> c) 
将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。  

void clear() 
从此列表中删除所有元素(可选操作)。  

boolean contains(Object o) 
如果此列表包含指定的元素,则返回 trueboolean containsAll(Collection<?> c) 
如果此列表包含指定 集合的所有元素,则返回trueboolean equals(Object o) 
将指定的对象与此列表进行比较以获得相等性。  

E get(int index) 
返回此列表中指定位置的元素。  

int hashCode() 
返回此列表的哈希码值。  

int indexOf(Object o) 
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1boolean isEmpty() 
如果此列表不包含元素,则返回 trueIterator<E> iterator() 
以正确的顺序返回该列表中的元素的迭代器。  

int lastIndexOf(Object o) 
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1ListIterator<E> listIterator() 
返回列表中的列表迭代器(按适当的顺序)。  

ListIterator<E> listIterator(int index) 
从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。  

E remove(int index) 
删除该列表中指定位置的元素(可选操作)。  

boolean remove(Object o) 
从列表中删除指定元素的第一个出现(如果存在)(可选操作)。  

boolean removeAll(Collection<?> c) 
从此列表中删除包含在指定集合中的所有元素(可选操作)。  

default void replaceAll(UnaryOperator<E> operator) 
将该列表的每个元素替换为将该运算符应用于该元素的结果。  

boolean retainAll(Collection<?> c) 
仅保留此列表中包含在指定集合中的元素(可选操作)。  

E set(int index, E element) 
用指定的元素(可选操作)替换此列表中指定位置的元素。  

int size() 
返回此列表中的元素数。  

default void sort(Comparator<? super E> c) 
使用随附的 Comparator排序此列表来比较元素。  

default Spliterator<E> spliterator() 
在此列表中的元素上创建一个SpliteratorList<E> subList(int fromIndex, int toIndex) 
返回此列表中指定的 fromIndex (含)和 toIndex之间的视图。  

Object[] toArray() 
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 
 
<T> T[] toArray(T[] a) 
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。  

Set集合详细使用方法

  • 不包含重复元素的集合,自动排序
  • 将一个数组中的元素放入Set:Set set = Arrays.stream(nums1).boxed().collect(Collectors.toSet());
boolean add(E e) 
如果指定的元素不存在,则将其指定的元素添加(可选操作)。  

boolean addAll(Collection<? extends E> c) 
将指定集合中的所有元素添加到此集合(如果尚未存在)(可选操作)。  

void clear() 
从此集合中删除所有元素(可选操作)。  

boolean contains(Object o) 
如果此集合包含指定的元素,则返回 trueboolean containsAll(Collection<?> c) 
返回 true如果此集合包含所有指定集合的元素。  

boolean equals(Object o) 
将指定的对象与此集合进行比较以实现相等。  

int hashCode() 
返回此集合的哈希码值。  

boolean isEmpty() 
如果此集合不包含元素,则返回 trueIterator<E> iterator() 
返回此集合中元素的迭代器。
  
遍历set中的元素
 Iterator i = set.iterator();
            while (i.hasNext()){
                String s = (String) i.next();
                System.out.println(s+":"+map.get(s));
            }


boolean remove(Object o) 
如果存在,则从该集合中删除指定的元素(可选操作)。  

boolean removeAll(Collection<?> c) 
从此集合中删除指定集合中包含的所有元素(可选操作)。  

boolean retainAll(Collection<?> c) 
仅保留该集合中包含在指定集合中的元素(可选操作)。  

int size() 
返回此集合中的元素数(其基数)。  

default Spliterator<E> spliterator() 
在此集合中的元素上创建一个 SpliteratorObject[] toArray() 
返回一个包含此集合中所有元素的数组。  

<T> T[] toArray(T[] a) 
返回一个包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。  

Map集合详细使用方法

  • Map接口是双列集合,每一个元素都包含一个键值对象,key、value,键值之间存在一种对应关系,称为映射,访问元素时,通过key,可以访问value,但是目前通过value访问key没有简单的办法
  • 统计nums数组中每个元素出现的次数,
    Arrays.stream(nums1).forEach(item)->{
    map.put(item,map.getOrDefault(item,0)+1)
    });

Map中的常用方法

Map<Object, Object> map = new HsahMap<>();
map.put(key,value);// 向map中添加键值,会将原先key所对应的键值覆盖掉,即可以用该方法修改map中的值,Key不能重复,Value可以重复
map.clear(); // 删除map中所有键值
map.remove(key);// 删除Key为key值的元素
map.putAll(Map m);// 向map集合中添加m集合的所有元素
map.get(key);// 根据map集合中元素的Key来获取相应元素的Value,如果没有,返回null
map.containsKey(key);// 检出map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。
map.containsValue(value);// 检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。
map.isEmpty();// 判断map是否为空,为空返回true
map.equals(m);// 判断两个map集合是否完全相同
int num = map.hashCode();// 返回map集合的哈希码值
int size = map.size();// 返回map集合元素个数

default boolean remove(Object key, Object value) 
仅当指定的密钥当前映射到指定的值时删除该条目。  
default V replace(K key, V value) 
只有当目标映射到某个值时,才能替换指定键的条目。  



/**
* 遍历map
*/
Set keySet();// 返回map集合中所有Key
Collection<v> values();// 返回map集合中所有的Value到一个Collection集合
Set<Map.Entry<K,V>>entrySet();// 返回此映射中包含的映射关系的Set试图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值