java集合

集合概述

        在Java中,集合(Collection)是一个用于存储对象的容器,可以存储多个对象,并可以进行查询、排序和操作等操作。Java提供了多种不同类型的集合类,每个集合类都实现了特定的数据结构,以满足不同的需求。

        Java集合框架主要分为两个部分:一部分是集合接口和类,另一部分是实现这些接口的具体类。

常见的集合接口有:

  • Collection:表示一组元素,包括List、Set和Queue等子接口;
  • List:有序的元素集合,其中可以包含重复的元素;
  • Set:不允许重复元素的集合;
  • Queue:一种支持在队列头部插入和删除的集合;
  • Deque:一种支持双向队列操作的集合。

常见的集合类有:

主要分为collection(单列集合)和map(双列集合)键值对

collection是所有单列集合的父接口它的成员方法,子类都可以使用

collection集合接口特有方法:

 list和set是collection的子类

 list集合接口特有方法:

collection的遍历方式:迭代器遍历、增强for遍历、lambda表达式遍历

 迭代器遍历:

注意细节:

1、报错NoSuchElementException(表示没有这个元素异常)

2、迭代器遍历完毕,指针不会复位

3、每一次循环中只能用一次next方法

4、迭代器遍历时,不能使用集合的方法增加或者删除

增强for遍历: 

 增强for的底层就是迭代器,为了简化迭代器的代码书写。

所有的单列集合和数组才能使用增强for进行遍历

lambda遍历:

        lambda更简单,更直接的集合遍历

list接口: ArrayList、LinkedList        (有序、可重复、有索引)

set接口: HashSet、TreeSet                (无序、不可重复,无索引)

map: HashMap、TreeMap

  • ArrayList:基于数组实现的列表,支持动态添加和删除元素,在获取指定元素的性能上比较高效;
  • LinkedList:基于链表实现的列表,支持动态添加和删除元素,在添加和删除元素的性能上比较高效;
  • HashSet:基于哈希表实现的集合,不允许重复元素,存储元素的顺序是不确定的;
  • TreeSet:基于红黑树实现的集合,不允许重复元素,存储元素的顺序是有序的;
  • HashMap:基于哈希表实现的键值对映射,不允许重复的键;
  • TreeMap:基于红黑树实现的键值对映射,不允许重复的键,存储元素的顺序是有序的。

 Java集合框架提供了很多方法用于操作和查询集合中的元素,例如添加、删除、查找、遍历等。使用集合可以大大简化代码,提高代码的可读性和可维护性。

List系列集合:

ArrayList:

在Java中,ArrayList是一种实现了List接口的动态数组类,它可以存储任意类型的对象,并且可以根据需要自动扩容。

ArrayList的五个成员方法:

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<String>();//创建一个集合
        list.add("aa");//向集合里面添加元素
        list.add("bb");

        System.out.println(list);

        boolean b=list.remove("aa");//通过元素值删除元素
        String str=list.remove(0);//放回删除的元素


        list.add("aa");
        list.set(0,"ccc");//通过索引修改值
        System.out.println(list);

        System.out.println(list.get(0));//通过索引获取元素的值
        System.out.println(list.size());//获取集合的大小
    }
}
 LinkedList:

LinkedList是一种实现了List接口和Deque接口的双向链表类,它可以存储任意类型的对象,并且支持快速添加、删除和访问元素。

总之,LinkedList是一种非常灵活和方便的集合类,具有高效的插入和删除元素、用作队列或栈等特点。它适用于需要频繁插入和删除元素,但不需要频繁访问元素的场景。然而,如果需要频繁访问元素或对集合进行排序,建议使用ArrayList,因为它的随机访问速度更快。

 LinkedList六个成员方法:

Set系列集合:

注意:Set集合是Collection集合的子接口,所以Set集合和Collection使用的方法基本一致

   特点:
  • 无序:存取顺序不一致
  • 不重复:可以去除重复
  • 无索引:没有带索引的方法,所以不能使用普通for遍历,也不可以通过索引来获取元素
Set集合的实现类 :
  • HashSet:无序、不重复、无索引
  • LinkedHashSet:有序、不重复、无索引
  • TreeSet:可排序、不重复、无索引

Set集合可以通过迭代器、增强for、 lambda进行遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值