java数据结构与算法基础(一)-线性结构

1. 数组

数组的基本使用
// 创建一个数组
int[] arr1 = new int[3];
// 获取数组的长度
int length1 = arr1.length;
// 访问数组中的元素
// 为数组中的元素赋值
// 遍历数组
for(int i = 0; i < length; i++) {
   
  System.out.println(arr1[i]);
}
// 创建数组的同时为数组中的元素赋值
int[] arr2 = new int[] {
   1, 2, 3, 4, 5};
数组元素的添加
// 解决数组的长度不可变的问题
int[] arr = new int[] {
   1, 2, 3};
// 快速查看数组中的元素!!!
System.out.println(Arrays.toString(arr));
// 要加入数组的目标元素
int dst = 4;

// 创建一个新的数组,长度是原始数组长度+1
int[] newArr = new int[arr.length + 1];
// 把原来的数组的元素全部复制到新数组中 
for(int i = 0; i < arr.length; i++ ) {
   
	newArr[i] = arr[i];
}
// 把目标元素放入新数组的最后
newArr[arr.length] = dst;
数组元素的删除
int[] arr = new int[] {
   1, 2, 3, 4, 5};
//要删除元素的下标
int dst = 3;
// 创建一个新数组,数组长度是原数组的长度-1
int newArr[] = new int[arr.length - 1];
// 赋值元数组中除了要删除的那个元素以外的其他元素
for(int i = 0; i < newArr.length; i++) {
   
	// 要删除的元素之前的元素
	if(i < dst) {
   
		newArr[i] = arr[i];
	}else {
   
		newArr[i] = arr[i+1];
	}
}
// 新数组替换旧数组
arr = newArr;
面向对象的数组
import java.util.Arrays;

public class MyArray {
   

  // 用于存储数据的数组
  private int[] elements;

  public MyArray() {
   
    elements = new int[0];
  }

  // 获取数组长度的方法
  public int size() {
   
    return elements.length;
  }

  // 数组中的末尾添加一个元素
  public void add(int element) {
   
    // 创建一个新数组
    int[] newArr = new int[elements.length + 1];
    // 把原始数组中的元素复制到新数组中
    for (int i = 0; i < elements.length; i++) {
   
      newArr[i
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java数据结构与算法的学习对于程序员来说非常重要。数据结构算法基础,而算法又是程序的灵魂。要学好算法,需要将数据结构学习到位。在面试中,数据结构与算法常常是考察的重点。 Java中常用的数据结构与算法有很多种。其中包括数组、栈、队列、链表、树结构基础、二叉树、Huffman树、多路查找树(如2-3树、2-3-4树、B树、B树)和图结构等。 数据结构在计算机中用于存储和组织数据的方式。它指的是相互之间存在特定关系的数据元素的集合。数据结构通常与高效的检索算法和索引技术有关。根据数据的逻辑结构,可以简单地将数据结构分为线性结构和非线性结构。在线性结构中,数据元素之间存在一对一的关系,如数组、栈、队列和链表。而非线性结构中,数据元素之间存在一对多或多对多的关系,如树和图。 在Java中,我们可以使用各种数据结构算法来解决不同的问题。例如,我们可以使用数组来存储一组数据,使用链表来实现动态数据结构,使用树结构来表示层次关系,使用图来表示网络结构等。同时,我们也可以利用各种算法来对这些数据结构进行操作和处理,如排序、查找、删除等。 因此,学习Java数据结构与算法是程序员必备的技能之一。它可以帮助我们优化程序的性能,提高代码的可读性和可维护性,同时也能够在面试中展示我们的专业能力和解决问题的能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [数据结构与算法详解(含算法分析、动图图解、Java代码实现、注释解析)](https://blog.csdn.net/yuan2019035055/article/details/120262225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Java中常用数据结构及方法](https://blog.csdn.net/qq_41101966/article/details/128364279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值