欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java(十三)集合类(2)

程序员文章站 2022-05-04 09:21:12
集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。一、lection接口由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合与Set集合是通用的。方法功能描述add(E e)将指定的对象从该集合中移除remove(Object o)将指定的对象从该集合中移除isEmpty()返回boolean值,用于判断当前集合是否为空iterator()返回在....
  • 集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。

一、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(包含)之后的所有对象

本文地址:https://blog.csdn.net/qq_47239483/article/details/107581783

相关标签: 笔记