JAVA学习之集合

5.25

目录

 

集合

Collection集合的遍历

Map集合

Collections

遍历集合


集合

 

Collection集合的遍历

Iterator:迭代器,集合专用的遍历方式

Iterator<E> iterator():返回此集合元素的迭代器,通过集合的iterator()方法得到

Iterator中常用的方法

E next():返回迭代的下一个元素
boolean hasNext():如果迭代具有元素更多元素,则返回true

List集合

概述

  • 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素

  • 与Set集合不同,列表通常允许重复的元素

集合特点

  • 有序:存储和取出的元素顺序一样

  • 可重复:存储的元素可以重复

特有方法

方法名说明
void add(int index,E element)在此集合中指定位置插入
E remove(int index)删除指定索引的元素,返回被删除的元素
E set(int index,E element)修改指定索引的元素,返回被修改的元素
E get(int index)返回指定索引的元素

集合子类

ArrayList

底层数据结构是数组,查询快,增删慢

常用方法

方法名说明
public boolean remove(Object o)删除指定元素,返回是否删除成功
public E remove(int index)删除指定索引的元素,返回被删除的元素
public E set(int index,E element)修改指定索引的元素,返回被修改的元素
public E get(int index)返回指定索引的元素
public int size()返回集合中的元素个数

LinkedList

底层数据结构是链表,查询慢,增删快

Set集合

集合特点

  • 不包含重复元素的集合

  • 没有带索引的方法,所以不能使用普通的for循环遍历

集合子类

HashSet

  • 底层数据结构是哈希表

  • 对集合的迭代顺序不作任何保证,也就是说不能保证存储的顺序和取出的顺序一致

  • 没有带索引的方法,所以不能使用普通for循环遍历

  • 由于是Set集合,不能包含重复元素

LinkedHashSet

  • 哈希表和链表实现的Set接口,具有可预测的迭代次序

  • 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的

  • 由哈希表保证元素唯一

TreeSet

  • 元素有序,按照一定规则进行排序,具体规则取决于构造方法

TreeSet(): 根据其元素的自然排序进行排列
TreeSet(Comparator comparator): 根据指定的比较器进行比较
  • 没有带索引的方法,所以不能使用普通for循环遍历

  • 由于Set集合,保证元素的唯一性

Map集合

Map集合的基本功能

方法名说明
V put(K key,V value)添加元素
V remove(Object key)根据键删除键值对元素
void clear()移除所有的键值对元素
boolean containsKey(Object key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合中是否包含指定的值
boolean isEmpty()判断集合是否为空
int size()集合的长度

Map集合的获取功能

方法名说明
V get(Object key)根据键获取值
Set<K>keySet()获取所有键的集合
Collection<V>values()获取所有值的集合
Set<Map.Entry<K,V>>entrySet()获取所有键值对对象的集合

Collections

Collections类的概述

是针对集合操作的工具类

Collections类的常用方法

public static<T extends Comparable<? super T>>void sort(List<T>list):将指定的列表按升序排序
public static void reverse(List<?> list):反转指定列表中元素的顺序
public static void shuffle(List<?>list): 使用默认的随机源随机排列指定的列表

遍历集合

List集合

普通for循环

        for (int i=0;i<list.size();i++){
            String s = list.get(i);
            System.out.println(s);
        }
String类型可替换

增强for循环

        for (String s : list){
            System.out.println(s);
        }
String类型可替换

迭代器

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
String类型可替换

Set集合

增强for循环

        for (String ss : s){
            System.out.println(ss);
        }
String类型可替换

迭代器

        Iterator<String> iterator = s.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
String类型可替换

Map集合

方式一:获取键找对应的值

        Set<String> strings = map.keySet();
        for (String s : strings){
            String s1 = map.get(s);
            System.out.println(s + "," + s1);
        }
String类型可替换

方式二:获取键值对元素

        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> m : entries){
            String key = m.getKey();
            String value = m.getValue();
            System.out.println(key + "," + value);
        }
String类型可替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值