1
1
package org .wsc .array ;
2
2
3
- import java .util .Arrays ;
4
3
5
4
public class ArrayUtil {
6
5
/**
@@ -10,7 +9,7 @@ public class ArrayUtil {
10
9
* @param origin
11
10
* @return
12
11
*/
13
- public void reverseArray (int [] origin ){
12
+ public static void reverseArray (int [] origin ){
14
13
//折半
15
14
for (int i = 0 ; i < (origin .length >> 1 ); i ++) {
16
15
int num = origin [i ];
@@ -26,7 +25,7 @@ public void reverseArray(int[] origin){
26
25
* @param oldArray
27
26
* @return
28
27
*/
29
- public int [] removeZero (int [] oldArray ){
28
+ public static int [] removeZero (int [] oldArray ){
30
29
int count = 0 ;//计数器
31
30
/*
32
31
* 利用冒泡,将0元素向后排
@@ -53,6 +52,30 @@ public int[] removeZero(int[] oldArray){
53
52
return newArray ;
54
53
}
55
54
55
+ /**
56
+ * 现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
57
+ * 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
58
+ * {1,3,4,5,6,6,5,4,7,6,7,5}
59
+ * @param oldArray
60
+ * @return
61
+ */
62
+ public static int [] removeZero2 (int [] oldArray ){
63
+ int count = 0 ;//计数器
64
+ for (int i = 0 ; i < oldArray .length ; i ++) {
65
+ if (oldArray [i ] == 0 )
66
+ count ++;//计数器+1
67
+ }
68
+ //创建新数组
69
+ int [] newArray = new int [oldArray .length -count ];
70
+ for (int i = 0 ,j =0 ; i < oldArray .length ; i ++) {
71
+ if (oldArray [i ] != 0 ){
72
+ newArray [j ] = oldArray [i ];
73
+ j ++;
74
+ }
75
+ }
76
+ return newArray ;
77
+ }
78
+
56
79
/**
57
80
* 给定两个已经排序好的整形数组, a1和a2 , 创建一个新的数组a3, 使得a3 包含a1和a2 的所有元素, 并且仍然是有序的
58
81
* 例如 a1 = [3, 5, 7,8] a2 = [4, 5, 6,7] 则 a3 为[3,4,5,6,7,8] , 注意: 已经消除了重复
@@ -61,7 +84,7 @@ public int[] removeZero(int[] oldArray){
61
84
* @return
62
85
*/
63
86
64
- public int [] merge (int [] array1 , int [] array2 ){
87
+ public static int [] merge (int [] array1 , int [] array2 ){
65
88
return null ;
66
89
}
67
90
/**
@@ -73,8 +96,12 @@ public int[] merge(int[] array1, int[] array2){
73
96
* @param size
74
97
* @return
75
98
*/
76
- public int [] grow (int [] oldArray , int size ){
77
- return null ;
99
+ public static int [] grow (int [] oldArray , int size ){
100
+ int [] newArray = new int [oldArray .length +size ];
101
+ for (int i = 0 ; i < oldArray .length ; i ++) {
102
+ newArray [i ] = oldArray [i ];
103
+ }
104
+ return newArray ;
78
105
}
79
106
80
107
/**
@@ -84,7 +111,7 @@ public int[] grow(int [] oldArray, int size){
84
111
* @param max
85
112
* @return
86
113
*/
87
- public int [] fibonacci (int max ){
114
+ public static int [] fibonacci (int max ){
88
115
return null ;
89
116
}
90
117
@@ -94,7 +121,7 @@ public int[] fibonacci(int max){
94
121
* @param max
95
122
* @return
96
123
*/
97
- public int [] getPrimes (int max ){
124
+ public static int [] getPrimes (int max ){
98
125
return null ;
99
126
}
100
127
@@ -104,7 +131,7 @@ public int[] getPrimes(int max){
104
131
* @param max
105
132
* @return
106
133
*/
107
- public int [] getPerfectNumbers (int max ){
134
+ public static int [] getPerfectNumbers (int max ){
108
135
return null ;
109
136
}
110
137
@@ -116,7 +143,12 @@ public int[] getPerfectNumbers(int max){
116
143
* @param s
117
144
* @return
118
145
*/
119
- public String join (int [] array , String seperator ){
120
- return null ;
146
+ public static String join (int [] array , String seperator ){
147
+ String str = "" ;
148
+ for (int i = 0 ; i < array .length ; i ++) {
149
+ str += i != array .length -1 ?
150
+ array [i ] + seperator : array [i ];
151
+ }
152
+ return str ;
121
153
}
122
154
}
0 commit comments