首页 > 编程语言 >Java学习笔记:ArrayList集合

Java学习笔记:ArrayList集合

时间:2024-03-23 11:33:55浏览次数:21  
标签:Java 数据类型 ArrayList 元素 list 笔记 集合

目录
**2024/3/23**

参考资料:

黑马程序员:ArrayList集合

Java集合框架最全详解(看这篇就够了)

为什么要有集合:解决数组自动扩容的问题

20240323093217

Java、python数据类型对比

20240323093347

20240323095611

Java支持的数据类型主要分为两大类:

  • 内置数据类型:也称为基本数据类型;
  • 引用数据类型:除了基本数据类型外,Java还支持引用数据类型,包括类、数组和接口等。

Python支持多种数据类型,主要包括以下几种:

  • 数字(Number):用于表示数值,包括整数、浮点数和复数。
  • 字符串(String):用于表示文本信息,由字符序列组成。
  • 布尔型(bool):用于逻辑判断,只有两个值True和False。
  • 列表(List):一种有序且可变的集合,可以存储不同类型的元素。
  • 元组(Tuple):一种有序但不可变的集合,一旦创建,元素不能更改。
  • 集合(Set):一种无序且不包含重复元素的集合,适合进行数学上的集合操作。
  • 字典(Dictionary):一种映射类型,由键值对组成,键必须是唯一的。

在Java中常见的数据类型实现方式:

  1. 整数(Integer):Java中的基本整数类型是int,可以表示32位有符号整数。此外,还有long类型可以表示64位有符号整数。
  1. 浮点数(Floating-point numbers):Java中的浮点数类型是floatdoublefloat类型占用32位,而double类型占用64位。
  1. 布尔型(Boolean):Java中的布尔类型是boolean,只有两个值:truefalse
  1. 字符串(String):Java中的字符串类型是String,用于表示文本信息。可以使用双引号或单引号来创建字符串。
  1. 数组(Array)Java中的数组是一种固定长度的数据结构,可以存储相同类型的元素。可以通过声明数组类型和指定大小来创建数组。
  1. 集合(Collection)Java中的集合类提供了一种灵活的方式来存储和管理一组对象。常用的集合类包括ListSetMap等。
  1. 枚举(Enumeration):Java中的枚举类型用于定义一组固定的常量值。通过使用关键字enum来声明枚举类型。
  1. 自定义类(Custom classes):Java支持用户定义自己的类,用于封装数据和行为。通过使用关键字class来声明一个类。

需要注意的是,Java是一种静态类型语言,每个变量都需要显式地声明其类型。

Java通过使用集合框架来解决一组数据的存储和管理

【python通过其多样的数据类型来解决一组数据的存储和管理】

Java集合框架是用于存储和操作对象组的一系列接口、类和算法的集合

Java集合框架提供了多层次的接口和实现,以支持不同类型的数据结构。

Java集合框架的核心接口及其常见实现:

  1. List:代表一个有序的集合,可以包含重复的元素。常见的实现包括ArrayList和LinkedList。ArrayList提供了快速的随机访问能力,而LinkedList则优化了元素插入和删除操作。
  2. Set:代表一个不允许重复元素的集合。常用实现有HashSet、LinkedHashSet和TreeSet。HashSet基于哈希表实现,提供快速的查找和插入;LinkedHashSet则维护了元素的插入顺序;TreeSet则基于红黑树,可以对集合进行排序。
  3. Queue:代表一个先进先出(FIFO)的队列。Java中的Queue接口通常由LinkedList实现,也可以使用PriorityQueue来维护优先级顺序。
  4. Map:代表一个键值对映射。HashMap是一种常用的实现,它提供了快速的存取操作;TreeMap则基于红黑树实现,能够对键进行排序;LinkedHashMap保持了插入顺序或者访问顺序。

Arrays.asList()可以将数组转换为列表。Java集合框架是一个强大且灵活的工具,它允许开发者根据具体需求选择合适的数据结构。

Java集合大致也可分成List、Set、Queue、Map四种接口体系

img

image-20240323102144680

Java集合和数组存储数据类型的特点

20240323092046

20240323093320

ArrayList成员方法

20240323093756

20240323093638

20240323094015

20240323094311

演示代码

package study.heima;
import java.util.ArrayList;

/*
 * Java数组 --- python 元组;数据不可改变,不能扩容;
 * JavaArrayList集合 --- python列表;数据列表有序且支持重复元素;提供增删改查的方法;
 * Java集合框架解决一组数据的存储管理方案;
 */
public class ArrayListDemo1 {
    public static void main(String[] args) {
        
        // 创建ArrayList集合对象
    /*错误演示:基本数据类型必须使用包装类;
    ArrayList<int> list = new ArrayList<int>;
     */
        
        ArrayList<String> list = new ArrayList<String>();
        System.out.println(list);   // 默认值:[]

        // 添加元素
        ArrayList<String> list_1 = new ArrayList<String>();
        list_1.add("zzz");
        list_1.add("");
        list_1.add("zzz");  // 验证是否允许重复的元素
        list_1.add("zzz");  
        list_1.add("ddd");
        list_1.add("ddd");
        list_1.add("ddd");
        list_1.add("ddd");
        System.out.println(list_1);

        // 删除元素
        list_1.remove("zzz");
        list_1.remove("zzz");
        System.out.println(list_1);     // 按照遍历顺序来删除;成功删除返回True;否则false

        // 修改元素
        list_1.set(2, "王大锤");       // 插入索引下标位置
        System.out.println(list_1);

        // 查询元素
        String element = list_1.get(2);
        System.out.println(element);

        // 遍历集合 list_1.fori 回车
        for (int i = 0; i < list_1.size(); i++) {
            System.out.print(list_1.get(i) + " ");
        }
    }
}

如果对您有帮助 欢迎 点赞+收藏!

标签:Java,数据类型,ArrayList,元素,list,笔记,集合
From: https://www.cnblogs.com/Dr-LiDaxia/p/18090910

相关文章

  • Java随机读写文件
    目录1. 构造方法2.文件指针3.读写操作4.应用示例       文件输入输出流类(FileInputStream和FileOutputStream)实现了对磁盘文件的顺序读写,然而在实际的应用中,经常需要在文件的任意位置读或写数据,并且要求同时进行读和写操作。为此,Java还提供了一个功能更强大、......
  • java数据结构与算法基础-----排序------堆排序
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录堆排序是利用堆(数据结构)设计的排序算法,属于选择排序,最坏,最好,平均时间复杂度均为O(nlogn),不稳......
  • FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
    FFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为https://trac.ffmpeg.org/wiki/CompilationGuide,在这里可以找到FFmpeg对各系统的编译说明。更多详细的FFmpeg开发知识参见《F......
  • 禁欲28天!一宅男居然肝出如此详细Web安全学习笔记,学妹看完直接抽搐了!
    1.1.Web技术演化1.1.1.简单网站1.1.1.1.静态页面Web技术在最初阶段,网站的主要内容是静态的,大多站点托管在ISP上,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,基本只是浏览网页。1.1.1.2.多媒体阶段随着技术的不断发展,音频、视频、Flas......
  • (Java)猛刷LeetCode——数组知识点篇
    数组Array在连续的内存空间中,存储一组相同类型的元素元素:值索引:数组的下标数组访问(Access)和数组搜索(Search)●数组访问:索引●数组搜索:找2这个元素数组中有没有以下是数组的常规操作:数组创建、添加元素、访问元素、修改元素、删除元素、遍历数组、查找元素、数组......
  • 学习笔记:SSTBAN 用于长期交通预测的自监督时空瓶颈注意力
    Self-SupervisedSpatial-TemporalBottleneckAttentiveNetworkforEfficientLong-termTrafficForecasting用于高效长期交通预测的自监督时空瓶颈注意力网络期刊会议:ICDE2023论文地址:https://ieeexplore.ieee.org/document/10184658代码地址:https://github.com/guoshnBJ......
  • 《自动机理论、语言和计算导论》阅读笔记:p1-p4
    《自动机理论、语言和计算导论》学习第1天,p1-p4,总计4页。这只是个人的学习记录,因为很多东西不懂,难免存在理解错误的地方。一、技术总结1.有限自动机(finiteautomata)示例1.softwareforcheckingdigitalcircuits。2.lexicalanalyzerofcompiler。3.softwareforscannin......
  • JavaScript之Promise补充与Dom操作
    Promise过程分析//按照顺序依次引入a-d.js,最后打印加载完毕load('a.js').then(()=>{returnload('b.js')//load方法返回Pomise对象//但是没有把这个对象返回//所以这个函数没有返回值//then方法会提供一个空对象作为返......
  • web CSS笔记
    CSS(CascadingStyleSheets)美化样式CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整......
  • Java基础入门day19
    day19面向对象的三大特性三大特性封装继承多态封装packagecom.saas;​publicclassStudent{​  Stringname;  intage;  doublescore;  booleansex;}packagecom.saas;​publicclassTestEncapsulation{​  publicsta......