• 集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。

一、lection接口

  • 由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合与Set集合是通用的。
方法 功能描述
add(E e) 将指定的对象从该集合中移除
remove(Object o) 将指定的对象从该集合中移除
isEmpty() 返回boolean值,用于判断当前集合是否为空
iterator() 返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象
size() 返回int型值,获取该集合中元素的个数

例 在项目中创建Muster,在主方法中实例化集合对象,并向集合中添加元素,最后将集合中的对象以String形式输出。

import java.util.*;//导入java.util包,其他实例都要添加该语句
public class Muster{  //创建Muster类public static void main(String args[]){Collection<String>list=new ArrayList<>();//实例化集合类对象list.add("a");//向集合添加数据list.add("b");list.add("c");lterator<String>it=list.iterator();//创建迭代器while(it.hasNext()){//判断是否有下一个元素String str=(String)ut.next();//获取集合中的元素System.out.println(str);}}
}

结果如下:
a
b
c

注意:Iterator的next()方法返回的是Object。

二、List集合

List集合包括List接口以及List接口的所有实现类。List集合中的允许重复,各元素的顺序就是对象插入的顺序。类似Java数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。

  • 语法
    1、 get(int index):获取指定索引位置的元素。
    2、set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。

List接口的实现类

  • ArrayList 类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问;点是向指定的索引位置插入对象或删除对象的速度较慢。
  • LinkedList 类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较高;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较低。

分别通过ArrayList、LinkedList类实例化List集合

List<E>list =new ArrayList<>();
List<E>list2=new LinkedList<>();

E是合法的java数据类型。如果集合中的元素为字符串类型,那么E可以修改为String。

注意:与数组相同,集合的索引也是从0开始。

三、Set集合

Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中,但Set集合中不能包含重复对象。Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含Collection接口的所有方法。

注意:Set 的构造有一个约束条件,传入的Collection对象不能有重复值,必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true,则会出现一些问题。

  • Set接口常用的实现类有HashSet类与TreeSet类。
    1、HashSet 类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。
    2、TreeSet 类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此,TreeSet类实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较起递增排序,即可以通过比较器对用TreeSet类实现的Set集合中的对象进行排序。TreeSet类新增的方法如表(下)。
方法 功能描述
first() 返回此Set中当前第一个(最低)元素
last() 返回此Set中当前最后一个(最高)元素
comparator() 返回对此Set中的元素进行排序的比较器。如果此Set使用自然顺序,则返回null
headSet(E toElement) 返回一个新的Set集合,新集合是toElement(不包含)之前的所有对象
subSet(E fromElemt,E fromElement) 返回一个新的Set集合,是fromElement(包含)对象与fromElement(不包含)对象之间的所有对象
tailSet(E fromElement) 返回一个新的Set集合,新集合包含对象fromElement(包含)之后的所有对象

Java(十三)集合类(2)相关推荐

  1. 关于java的集合类,以及HashMap中Set的用法!

    來源:http://hi.baidu.com/fyears/blog/item/52329711622e007ccb80c465.html 关于java的集合类,以及HashMap中Set的用法! 2 ...

  2. JAVA关于集合类小程序--模拟新浪用户注册

    JAVA关于集合类小程序–模拟新浪用户注册 任务介绍: 编写一个模拟新浪微博用户注册的小程序,要求使用HashSet集合来实现.用户需要输入的有:用户名,密码.确认密码.生日(格式为:yyyy-mm- ...

  3. Java 常用集合类学习

    Java 常用集合类学习 1 Collection集合 1.1 Collection集合简介 1.2 Collection集合基本操作 1.3 Collection集合迭代 2 List集合 2.1 ...

  4. Java小记-集合类(超级无敌认真好用,万字收藏篇!!!!)

    文章目录 集合类 1 为什么要使用集合类? 1.2数组的特点 1.3 集合类的特点 2 Java中集合类的类结构 3 基于List接口的ArrayList类的使用 3.1 ArrayList的特点 3 ...

  5. java常用集合类详解(有例子,集合类糊涂的来看!)

    Framework 集合框架是一个统一的架构,用来表示和操作集合. 集合框架主要是由接口,抽象类和实现类构成. 接口:蓝色:实现类:红色 Collection |_____Set(HashSet) | ...

  6. Java容器集合类的区别用法

    Set,List,Map,Vector,ArrayList的区别 JAVA的容器---List,Map,Set  Collection  ├List  │├LinkedList  │├ArrayLis ...

  7. java容器集合类的区别用法_Java容器笔记(二):不同集合实现类的特点与区别...

    package java.util包中的Collection相关接口和类如下图: Collection.png 仅讨论Java.util包中的常见集合类,不涉及java.util的子包concurre ...

  8. java abstractlist_Java集合类源码解析:AbstractList

    今天学习Java集合类中的一个抽象类,AbstractList. 初识AbstractList AbstractList 是一个抽象类,实现了List接口,是隶属于Java集合框架中的 根接口 Col ...

  9. Java核心(集合类1-概述、Collection 接口 、List 集合)

    一.集合类概述 java.util 包中提供了一些集合类,这些集合类又被称为容器.集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的:数组用来存放基本类型的数据,集合用来存放对象的引用, ...

  10. Java学习-集合类

    一.概念 1.数学中: 集合:指具有某种特定性质的具体的或抽象的对象汇总而成的集体.其中构成集合的这些对象则称为该集合的元素 . 数组:所谓数组,是有序的元素序列.数组是用于储存多个相同类型数据的集合 ...

最新文章

  1. 【跃迁之路】【495天】程序员高效学习方法论探索系列(实验阶段252-2018.06.15)...
  2. 提高使用比特币的匿名性
  3. gethostbyname函数
  4. 【机器学习】一文解读时间序列基本概念
  5. 盘点那些世间顶级直男hhhhhh | 今日最佳
  6. spring 获取url参数
  7. 【转载】安装程序无法复制文件CONVLOG.EX
  8. pure tornado -- table
  9. 在线CSV转TSV工具
  10. 用python进行小波包分解
  11. webservice(草稿)
  12. python单位根检验平稳性怎么看是否平稳_PYthon ADF 单位根检验 如何查看结果
  13. 你真的打算凑合过完这一生吗(转)
  14. 网络基础之路由器的应用原理
  15. 【读书笔记】码农翻身 - 简介
  16. 计算机组成原理 | 穿越功耗墙,我们该从哪些方面提升“性能”?
  17. 爬虫36计之1.1 爬取高清MM图片壁纸
  18. 深度学习模型评价标准
  19. 鸿蒙手机分身,小米详解MIUI 8手机分身:相当于开启了两个平行空间
  20. C语言 if语句详解

热门文章

  1. 同步和异步修改页面传来的时间类型
  2. python3 logging输出到文件_python3:logging模块 输出日志到文件
  3. STM32F103c8t6点灯
  4. 利用Java模拟石头剪刀布游戏
  5. 自建网络加速服务器,自建DNS缓存服务器加快上网速度
  6. 位运算bitwise_and和bitwise_not函数
  7. linux redhate7 yum源,CentOS6.x网易163yum源配置
  8. 读书笔记之《人性的优点》
  9. 【新手上路常见问答】关于知识工程
  10. 【练习】Accessing data with MySQL