集合:List和Set

本文详细介绍了Java集合框架,包括数组与集合的区别、集合的三大要素、Collection接口及其子接口List和Set。重点讲解了List接口的实现类ArrayList和LinkedList的特点,以及Set接口的实现类HashSet和TreeSet的排序机制。此外,还探讨了迭代器、foreach循环、数据结构如栈、队列、数组、链表和红黑树,以及Map接口和其遍历方式。文章最后讨论了并发修改异常及解决方案。
摘要由CSDN通过智能技术生成

集合

1.集合和数组之间的区别有:

  • 数组的长度是固定的,集合的长度是可变的
  • 数组中存储的是同一类型的元素,集合中存储的数据可以是不同类型的,除了泛型限制
  • 数组中可以存放基本类型数据或者对象,集合中只能存放对象,基本数据类型会自动装箱
  • 数组是由JVM中现有的 类型+[] 组合而成的,除了一个length属性,还有从Object中继承过来的方法 之外,数组对象就调用不到其他属性和方法了
  • 集合是由JavaAPI中的java.util包里面所提供的接口和实现类组成的,这里面定义并实现了很多方 法,可以使用集合对象直接调用这些方法,从而操作集合存放的数据

2.集合框架中主要有三个要素组成:

  • 接口       整个集合框架的上层结构,都是用接口进行组织的。 接口中定义了集合中必须要有的基本方法。 通过接口还把集合划分成了几种不同的类型,每一种集合都有自己对应的接口。
  • 实现类    对于上层使用接口划分好的集合种类,每种集合的接口都会有对应的实现类。 每一种接口的实现类很可能有多个,每个的实现方式也会各有不同。
  • 数据结构     每个实现类都实现了接口中所定义的最基本的方法,例如对数据的存储、检索、操作等方法。 但是不同的实现类,它们存储数据的方式不同,也就是使用的数据结构不同。

3.集合按照其存储结构可以分为两大类:

  •  java.util.Collection 单列集合  基本数据类型对应的包装器类型  list set queue 
  •  java.util.Map          双列集合  key-value      

      其他的集合接口,都是由这两个接口派生出来的,Collection父接口:Interable

4.Collection是父接口,其中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列 集合对象。 Collection类型集合必须要有的基本的方法:

//向集合中添加元素

boolean add(E e)

//把一个指定集合中的所有数据,添加到当前集合中 1 2 3

一些方法的使用样例:

boolean addAll(Collection c)

//清空集合中所有的元素。

void clear()

//判断当前集合中是否包含给定的对象。

boolean contains(Object o)

//判断当前集合中是否包含给定的集合的所有元素。

boolean containsAll(Collection c)

//判断当前集合是否为空。

boolean isEmpty()

//返回遍历这个集合的迭代器对象

Iterator iterator()

//把给定的对象,在当前集合中删除。

boolean remove(Object o)

//把给定的集合中的所有元素,在当前集合中删除。

boolean removeAll(Collection c)

//判断俩个集合中是否有相同的元素,如果有当前集合只保留相同元素,如果没有当前集合元素清空

boolean retainAll(Collection c)

//返回集合中元素的个数。

int size()

//把集合中的元素,存储到数组中。

Object[] toArray()

//把集合中的元素,存储到数组中,并指定数组的类型

T[] toArray(T[] a)

5.Vector

     since 1.0   java集合的开始,实现自动扩容,可变长数组,现在Vector成了Collection的子类,线程安全的集合

6.迭代器       

        为了能够方便的遍历集合中的每一个元素,API中提供了一个迭代器接口: java.util.Iterator 该接口可以很方便的迭代出集合中的元素。是Collection集合及其子类型集合通用的方式

        java.lang.Iterable 接口中,定义了获取迭代器的方法:

public interface Iterable {

        Iterator iterator();

}

        java.util.Iterator 接口中,主要定义俩个方法:

public interface Iterator {

boolean hasNext();    //返回当前迭代器中是否还有下一个对象

Object next();             //获取迭代器中的下一个对象

  }

7.foreach循环

   增强for循环      Collection类型及其子类型的集合,还有数组,都可以使用foreach循环进行遍历其中的元素数据

for(变量类型    变量名  :集合){

        //操作变量        

}

集合&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值