Java面向对象基础知识之数组和链表

Java面向对象基础知识之数组和链表

1. 数组和链表区别

数组和链表都是线性数据结构,但它们的存储方式和特点不同。

  • 数组是一种连续的内存存储方式,可以快速访问任何一个元素。但在插入和删除元素时,需要移动大量元素,效率很低,因此不适合插入和删除操作频繁的情况。
  • 链表是一种非连续的内存存储方式,每个元素存储了下一个元素的地址,因此可以快速插入和删除元素。但访问指定位置的元素时需要遍历链表,效率较低。

2. 数组

2.1 定义和初始化数组

使用数组需要先定义一个数组变量,再初始化数组。 定义方式如下:

// 定义一个int类型的数组,长度为10
int[] arr = new int[10]; 

数组初始化有两种方式:

  • 静态初始化:定义数组时赋初值
  • 动态初始化:定义数组后再逐个赋值

静态初始化方式如下:

int[] arr1 = {1,2,3,4,5};

动态初始化方式如下:

int[] arr2 = new int[5];
arr2[0] = 1;
arr2[1] = 2;
arr2[2] = 3;
arr2[3] = 4;
arr2[4] = 5;

2.2 数组遍历

使用for循环遍历数组。

for(int i=0; i<arr.length; i++){
    System.out.println(arr[i]);
}

2.3 数组排序

可以使用Arrays类中提供的sort方法对数组进行排序。如下所示:

Arrays.sort(arr);

3. 链表

3.1 定义链表

链表由多个节点组成,节点包括两部分内容:数据域和指针域。数据域存储节点的值,指针域存储下一个节点的地址。

定义链表时需要先定义节点类,然后使用节点类定义链表。

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);

node1.next = node2;
node2.next = node3;

3.2 链表遍历

使用while循环遍历链表。

ListNode node = head; // head是链表的头节点
while(node != null){
    System.out.println(node.val);
    node = node.next;
}

3.3 在链表尾部添加节点

首先需要找到链表的尾节点,然后将尾节点的next指针指向新节点。如下:

ListNode tail = head;
while(tail.next != null){
    tail = tail.next;
}
tail.next = new ListNode(val);

4. 示例

4.1 数组示例

下面是一个数组排序的示例。

import java.util.Arrays;

public class ArrayExample {
    public static void main(String[] args) {
        int[] arr = {3,5,1,4,2};
        Arrays.sort(arr);  //排序
        for(int i=0; i<arr.length; i++) {
            System.out.println(arr[i]);  //遍历输出
        }
    }
}

4.2 链表示例

下面是一个在链表尾部添加节点的示例。

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

public class LinkedListExample {
    public static void main(String[] args) {
        ListNode head = new ListNode(1); //定义链表头节点
        ListNode tail = head;
        for(int i=2;i<=5;i++){ //循环添加节点
            tail.next = new ListNode(i);
            tail = tail.next;
        }
        ListNode node = head; //遍历链表
        while(node != null){
            System.out.println(node.val);
            node = node.next;
        }
    }
}

5. 总结

本文介绍了数组和链表的区别、定义和初始化、遍历、排序、以及链表添加节点等基本操作。在实际的开发中,应根据具体需求选择合适的数据结构。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面向对象基础知识之数组和链表 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java webservice上传下载文件代码分享

    下面是“java webservice上传下载文件代码分享”的完整攻略: 1. 准备工作 在开始实现文件上传下载的功能之前,我们需要准备好以下几点: 安装Java与Eclipse IDE开发环境; 下载并安装Apache Tomcat服务器; 导入JAX-WS 开发包,以便能够使用JAX-WS创建Webservice服务。 2. 创建文件上传下载的Webse…

    Java 2023年5月19日
    00
  • Java日常练习题,每天进步一点点(23)

    “Java日常练习题,每天进步一点点(23)”是一篇Java编程练习题,是供Java初学者练习和巩固知识的。本篇练习题主要涉及字符串处理和逻辑运算符的应用。接下来,我将对这篇练习题进行详细讲解。 题目大意 本篇练习题共有两道小题: 第一题 将一个字符串中的所有小写字母转换成大写字母,将所有的大写字母转换成小写字母。 第二题 输入两个数a和b,判断a能否被b整…

    Java 2023年5月26日
    00
  • Eclipse环境下如何配置Tomcat(把项目部署到Tomcat服务器上)

    下面是Eclipse环境下如何配置Tomcat的完整攻略,包括把项目部署到Tomcat服务器上的过程。 配置Eclipse环境 下载安装Eclipse 首先需要下载安装Eclipse IDE,可以去官网下载最新版Eclipse并进行安装。 下载安装Tomcat 进入Tomcat官网下载最新版本的Tomcat,并进行安装。 在Eclipse中安装插件 打开Ec…

    Java 2023年5月19日
    00
  • 使用Java构造和解析Json数据的两种方法(详解二)

    使用Java构造和解析Json数据的两种方法主要有两种实现方式:使用JSONObject和JSONArray类以及使用Gson库。下面分别进行详细讲解: 1.使用JSONObject和JSONArray类 1.1 构造Json数据 通过JSONObject和JSONArray类可以直接构造出相应的Json数据。 1.1.1 构造JSONObject JSON…

    Java 2023年5月26日
    00
  • Java Apache Commons报错“ParserConfigurationException”的原因与解决方法

    “ParserConfigurationException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 无效的配置:如果配置无效,则可能会出现此错误。在这种情况下,需要检查配置以解决此问题。 无效的输入:如果输入无效,则可能会出现此错误。在这种情况下,需要检查输入以解决此问题。 以下是两个实例: 例1 如果配置无效,则…

    Java 2023年5月5日
    00
  • Spring超详细讲解事务

    Spring超详细讲解事务 什么是事务 事务是指一个操作序列,该操作序列中的所有操作都必须全部执行成功或全部执行失败。事务支持保证数据库的一致性、完整性和隔离性。 Spring事务的优点 在使用Spring进行数据库操作时,使用Spring事务能够带来以下优点: Spring事务对所有的数据库访问代码提供了一致的编程模型 Spring事务可以将数据库事务的边…

    Java 2023年5月19日
    00
  • Java中的system.getProperty()的作用及使用方法

    Java中的system.getProperty()的作用及使用方法 在Java中,我们经常需要获取系统的相关参数,比如Java版本、操作系统类型、文件分隔符等等信息。这时候,我们可以使用Java自带的system.getProperty()方法来获取这些信息。 作用 system.getProperty()方法用于获取与指定键(key)相关联的系统属性(p…

    Java 2023年6月15日
    00
  • 安装Zookeeper和Kafka集群

    安装Zookeeper和Kafka集群 本文介绍如何安装Zookeeper和Kafka集群。为了方便,介绍的是在一台服务器上的安装,实际应该安装在多台服务器上,但步骤是一样的。 安装Zookeeper集群 下载安装包 从官网上下载安装包: curl https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apac…

    Java 2023年4月17日
    00
合作推广
合作推广
分享本页
返回顶部