算法学习笔记1:面向对象的数组

算法学习的笔记1,关于对象数组的一个工具类
该工具类可实现以下功能

获取数组的长度

在数组的末尾添加一个元素

打印所有元素到控制台

删除数组中的某个元素

获取某个元素

在指定位置插入一个元素

替换指定位置的元素

github工程地址

工具类代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package class3_array.utils;

import java.util.Arrays;

public class MyArray {
/*
用于存储数据的数组
*/
private int[] elements;

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

/**
* 获取数组的长度
* @return
*/
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] = elements[i];
}

//把添加的元素放入新的数组中
newArr[newArr.length-1] = element;

//新数组替换旧数组
elements = newArr;
}

/**
* 打印所有元素到控制台
*/

public void show(){
System.out.println(Arrays.toString(elements));
}

/**
* 删除数组中的某个元素
*/
public void delete(int index){
//判断传入的下标
if (index < 0 || index > elements.length - 1){
throw new RuntimeException("下标越界");
}
//创建一个新的数组
int[] newArr = new int[elements.length -1];

//把原来数组删除之后的元素赋值给新的数组
for (int i = 0; i < newArr.length; i++) {
//想要删除元素前面的元素
if (i < index){
newArr[i] = elements[i];
//想要删除元素后面的元素
}else {
newArr[i] = elements[i + 1];
}
}

//把新数组替换旧数组
elements = newArr;
}

/**
* 获取某个元素
*
*/
public int get(int index){
//判断是否下标越界
if (index < 0 || index > elements.length - 1){
throw new RuntimeException("下标越界");
}
return elements[index];
}

/**
* 插入一个元素到指定位置
*/
public void insert(int index,int element){
//判断是否下标越界
if (index < 0 || index > elements.length){
throw new RuntimeException("下标越界");
}

//新建一个数组
int[] newArr = new int[elements.length + 1];

//把原有数组中的值复制到新数组中
for (int i = 0; i < elements.length; i++) {
//插入元素之前的元素
if (i < index){
newArr[i] = elements[i];
//插入位置之后的元素
}else {

newArr[i + 1] = elements[i];
}

}
//把要插入的元素方到指定位置
newArr[index] = element;

//新数组替换旧数组
elements = newArr;
}

/**
* 替换指定位置的元素
*/
public void set(int index,int element){
//判断是否下标越界
if (index < 0 || index > elements.length - 1){
throw new RuntimeException("下标越界");
}
elements[index] = element;
}
}

测试类代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package class3_array;

import class3_array.utils.MyArray;

public class TestMyArray {
public static void main(String[] args) {
//创建一个可变的数组
MyArray myArray = new MyArray();

//获取长度
int size = myArray.size();
myArray.show();

//往可变数组中添加一个元素
myArray.add(99);
myArray.add(98);
myArray.add(97);
//显示所有元素到控制台
myArray.show();

//删除某个元素
myArray.delete(1);
myArray.show();

//取出指定位置的元素
int element = myArray.get(1);
System.out.println(element);
System.out.println("=============");

//在指定位置插入元素
myArray.insert(2,96);
myArray.show();
System.out.println("============");

//替换指定位置的元素
myArray.set(0,100);
myArray.show();
System.out.println(myArray.size());
}
}

希望能对您有所帮助。

欢迎大家访问我的个人博客

© 2021 XuXing's blog All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero