程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Java中集合的基本使用

发布于2022-12-03 09:57     阅读(687)     评论(0)     点赞(9)     收藏(0)


集合的使用

集合与数组的区别

集合和数组都是容器

数组的特点:

数组定义完成并启动后,类型确定、长度固定。

适合元素的个数和类型确定的业务场景,不适合做需要增删数据操作。

集合的特点:

集合的大小不固定,启动后可以动态变化,类型也可以选择不固定; 集合更像气球, 更加灵活。

集合非常适合做元素的增删操作。

注意: 集合中只能存储引用类型数据, 如果要存储基本类型数据可以选用包装类

数组和集合的对比:

  • 数组和集合的元素存储的对比

数组定义后类型确定,长度固定

集合类型可以不固定,长度(大小)是可变的

  • 数组和集合存储元素的类型对比

数组可以存储基本类型和引用类型的数据。

集合只能存储引用数据类型的数据。

  • 数组和集合的适用场景

数组适合做数据个数和类型确定的场景。

集合适合做数据个数不确定,且要做增删元素的场景。

集合体系结构介绍

在这里插入图片描述

集合主要分为两个体系:

体系一: Collection单列集合,每个元素(数据)只包含一个值

体系二: Map双列集合,每个元素包含两个值(键值对)。

Collection集合的体系:

每一个体系结构下面又会分很多种集合, 前期先掌握Collection集合体系的使用。

在这里插入图片描述

Collection是一个接口, Collection接口下面又有List和Set两个接口

List系列集合:添加的元素是有序、可重复、有索引。

  • ArrayList、LinekdList 是 List 接口常用的实现类:有序、可重复、有索引。

Set系列集合:添加的元素是无序、不重复、无索引。

  • HashSet 是 Set 接口常用的实现类: 无序、不重复、无索引;
  • LinkedHashSet 是 Set 接口常用的实现类: 有序、不重复、无索引;
  • TreeSet 也是 Set 接口的常用实现类:按照大小默认升序排序、不重复、无索引。

(有序指的是先添加的存储到前面, 后添加的存储到后面; 无序则先添加的有可能存储到前面有可能存储到后面, 后添加的同理)

演示代码:

ArrayList: 有序, 可重复, 有索引

public static void main(String[] args) {
    // ArrayList有序 可重复
    ArrayList list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("a");
    list.add(1);
    list.add(2);
    list.add(true);

    System.out.println(list); // [a, b, a, 1, 2, true]
    // 有索引
    System.out.println(list.get(4)); // 2
}

HashSet: 无序, 不重复, 无索引

public static void main(String[] args) {
    // HashSet 无序 不重复 无索引
    HashSet list = new HashSet();
    list.add("a");
    list.add("b");
    list.add("a");
    list.add(1);
    list.add(2);
    list.add(true);

    System.out.println(list); // [a, 1, b, 2, true]
}

集合对泛型的支持

集合都是支持泛型的,可以在编译阶段约束集合只能操作某种数据类型

约束了泛型后就不能再向集合中添加其他类型的元素, 离去下面代码中约束了泛型是String, 就不能再添加String之外的其他类型的元素

public static void main(String[] args) {
		// 约束泛型后就不能添加其他类型的元素
    ArrayList<String> list1 = new ArrayList<String>();
    // JDK 1.7开始后面的泛型类型申明可以省略不写
   ArrayList<String> list2 = new ArrayList<>();
}

注意:集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中存储的元素都认为是对象。

public static void main(String[] args) {
    // 错误演示, 编辑器会报错
    ArrayList<int> lists = new ArrayList<int>();
}

如果在集合中一定要存储基本类型的数据怎么办?

public static void main(String[] args) {
    // 存储基本类型要使用包装类
    ArrayList<Integer> lists1 = new ArrayList<>();
    lists1.add(10);
    lists1.add(20);
    lists1.add(50);
    System.out.println(lists1); // [10, 20, 50]

    ArrayList<Double> lists2 = new ArrayList<>();
    lists2.add(12.23);
    lists2.add(15.43);
    lists2.add(10.63);
    System.out.println(lists2); // [12.23, 15.43, 10.63]
}

小结:

集合的代表是?

Collection接口。

Collection集合分了哪两大常用的集合体系?

List系列集合:添加的元素是有序、可重复、有索引。

Set系列集合:添加的元素是无序、不重复、无索引。

如何约定集合存储数据的类型,需要注意什么?

集合支持泛型。

集合和泛型不支持基本类型,只支持引用数据类型。

原文链接:https://blog.csdn.net/m0_71485750/article/details/127338353



所属网站分类: 技术文章 > 博客

作者:javabb

链接:http://www.javaheidong.com/blog/article/582788/13fddc4e47a9bd1de649/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)