集合

作者: 马佳乐 | 来源:发表于2022-02-26 12:44 被阅读0次

为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类,集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下
Java的集合类主要由两个接口派生而出:CollectionMap
Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。

Collection集合:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set。

Map集合:双列集合类的根接口,用于存储具有键(Key)、值(Value)映射关系的元素,每个元素都包含一对键值,在使用Map集合时可以通过指定的Key找到对应的Value。

Collection接口

Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集合。
Collection提供了大量添加、删除、访问的方法来访问集合元素。

List接口

List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法

ArrayList集合

java.util.ArrayList
ArrayList是List接口的一个实现类,在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
ArrayList集合中大部分方法都是从父类Collection和List继承过来的,其中add()方法和get()方法用于实现元素的存取。
在JDK1.5版本之后,提出了泛型机制,语法如下:
类名<T>
T代表一个类型的名称,只能是类类型,包括自定义类,不能使基本类型
Object类为根类,很多程序员为了使程序更为通用,设计程序时通常使传入的值与返回的值都以Object类型为主,当需要使用这些实例时,必须正确地将该实例转换为原来的类型,否则运行时将会发生ClassCastException异常。
在声明类的同时定义该类所使用的泛型,则这个类被称作泛型类。

E用于描述一种具体的类型,这种类型需要在构造ArrayList实例对象时指定。

(1)创建ArraysList实例

ArrayList<T> list=new ArrayList<T>();

(2)向ArraysList中保存数据

(3)其他常用方法

foreach循环

JDK5.0 开始提供foreach循环,是一种更简洁的for循环,也称增强for循环,用于遍历数组或集合中的元素。
语法格式:

    for(容器中元素类型  临时变量:容器变量){
        循环体
    }

与for循环相比,foreach循环不需要获得容器的长度,也不需要根据索引访问容器中的元素,但它会自动遍历容器中的每个元素,其循环次由容器中元素的个输入决定,每次循环时,foreach中通过变量将当前循环的元素记住,并对其进行操作。
注意:
当时用foreach循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改。

foreach循环举例:

public class Ex{     
      public static void main(String args[]){
    String strs[]={"aaa","bbb","ccc"};
    //foreach循环遍历数组
    for(String str: strs){  str="ddd";  }
    System.out.println("foreach循环修改后的数组:");
    for(String s:strs){     System.out.print(s+"  ");   }
    System.out.println();
    //for循环遍历数组
    for(int i=0;i<strs.length;i++){ strs[i]="ddd";  }
    System.out.println("普通for循环修改后的数组:");
    for(String s:strs){     System.out.print(s+"  ");   }
      } 
}

本程序的运行结果是:

Tforeach循环修改后的数组:
aaa  bbb  ccc  
普通for循环修改后的数组:
ddd  ddd  ddd  

相关文章

  • 我的Swift的学习总结 -->第二周

    集合 集合:Set,定义一个集合可以写成:var 集合名 : Set<集合类型> = [集合元素],具体的集合应用...

  • markdown 测试

    集合 集合 集合 引用

  • kotlin学习第五天:集合,高阶函数,Lambda表达式

    集合 list集合 list集合分为可变集合与不可变集合。由list of创建的集合为不可变集合,不能扩容,不能修...

  • kotlin练习 ---- 集合练习

    kotlin练习 - 集合练习 Set集合 Set集合创建 Set集合的使用 List集合 List集合创建 Li...

  • 集合总结

    集合 集合分为单列集合和双列集合两种: 一.单列集合: Collection是单列集合的顶级接口: 其中有三类集合...

  • 映射、元组、集合

    映射 元组 集合 集合之seq 集合之set 集合之map

  • 16.Collection集合

    主要内容: Collection 集合 迭代器 增强for List 集合 Set 集合 1,集合 集合是java...

  • 集合与有序集合

    集合分为有序集合 (zset) 和无序集合 (set), 一般无序集合也直接说成集合 无序集合 (set) 无序集...

  • python入坑第八天|集合

    好的,各位蛇友,我们今天来学习集合。 内容: 集合的创建 集合操作符号 集合的内置函数 集合的创建 集合用set(...

  • 集合框架

    集合框架的概念 集合:存放数据的容器 集合框架:java中,用于表示集合,以及操作集合的类和接口的统称 数组与集合...

网友评论

    本文标题:集合

    本文链接:https://www.haomeiwen.com/subject/vtdhrrtx.html