java-jajava-自定义数组的工具类va-自定义数组的工具类自定义数组jjava-自定义数组的工具类ava-自定义数组的工具类 % A$ r2 F7 q" U" p2 I% M! R, V' w7 ]: F Z7 O+ D! g: w
java-自定义数组的工具类2 x) U# ^# e s. }- P
* K% o4 F- R" ?5 U
文章目录 ; b: B4 F5 x/ {" Y3 N3 \java-自定义数组的工具类 $ h g* V- K: M2 W' l7 [第一步:封装方法到B.java# }" L# ~. b# g& I. t! i6 b* t
第二步:在BCeShi.java中测试8 g0 Z( M3 _4 J3 B
运行结果(对应上面main方法中的代码注释来看): 0 P$ C' K, D+ S) w1 ]6 p5 wjava-自定义数组的工具类1 h% a8 v2 I- O
Java—数组中涉及的常见算法有写到 h: t8 k8 k8 m" ]
. M7 u1 V* R* Z7 E2 \$ O
求数值型数组中元素的最大值、最小值、平均数、总和等0 a `- l; s/ _. y6 r
数组的复制、反转、查找(线性查找、二分法查找)等等 Y/ {7 Z9 ^/ o( {数组元素的排序算法等等. X% y, [1 V, l- f, T
这样的功能都可以封装到一个个方法当中 ' X* C4 j5 i& z5 R' O) W " c, g0 K3 k6 c/ Q: s) Eps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起9 i% A+ i6 ~- W ?
! z% y8 Z/ X( v5 V' k: {第一步:封装方法到B.java * {5 m) \# X$ s1 f* C! wpackage dierjieduan; ( U" Q( c" H( c5 \0 _1 p4 P5 x//自定义数组的工具类( J1 x- I6 {2 t; s2 J
public class B {+ J* s* ?- J: o5 G3 P
( _8 a. x8 w$ G4 E- b$ O
//求数组的最大值7 l2 m- c$ K/ m6 K# d* ]
public int getMax(int[] arr){% g/ _) g6 u, t) I a4 u
int max=arr[0]; 4 ~* P/ B) s1 D `: q T for (int i = 0; i <arr.length ; i++) {- I, _/ ]2 l# N) E. H! z, k
if (arr>max){ 3 k! x7 z6 t+ q9 H9 u" ` max=arr; 7 W1 u& H, ^) n. z" q* A X& a } 4 L( x1 z. _ ^- |8 d# g4 h }- V: ^" ~) z( S) c z. Z
return max;2 r: p2 ^) P" s5 t6 V
}, e: l j4 U$ r h, i6 D3 i n% G
6 u# ^) {8 y8 |( o //求数组的最小值 , N4 I+ h: C5 M3 U public int getMin(int[] arr){ & o9 j0 s3 E3 f; j int min=arr[0]; - H! ^: E, I5 L! V- W/ f for (int i = 0; i <arr.length ; i++) { - X3 k# U6 j1 P+ d( J) ^ if (arr<min){ $ X: P: `$ l8 w; n$ n7 Q" l% k min=arr; w( u6 T. h) V* w
} $ ?" a+ q& m6 g8 b } * B8 N, Y6 V/ V1 v return min; * }- ^+ |* O7 i$ \ }8 b* h/ q3 S# v' u* A
+ }+ x2 v! U5 y- ~: E //求数组的总和! q2 f4 \& H' ^, p2 w [6 r! M
public int getSum(int[] arr){ % F: {* }3 |5 _# J int sum=0;( k3 w+ F2 ^& Q, o
for (int i = 0; i <arr.length ; i++) {" }7 q; U0 e/ F, P. M2 x/ G6 Y
sum=sum+arr; : l2 x. Q. Z- z' j9 Y9 M } # Z7 o( S3 p4 q: t. L- N( u# I" [ return sum; + V* D) H, p! b% H } + |# U" I; L3 U# L5 I& u$ `% v , q0 d0 ]0 L m+ {: G+ m //求数组的平均值 7 i3 |# Y- X. D4 L. A public double getAvg(int[] arr){% z6 W# ^: P/ a* W+ ~* Y. b
1 |" P5 d: ~$ D/ e3 @0 o+ ^; } return getSum(arr)/arr.length;//注意返回值的灵活运用$ l7 X! o0 z/ d7 S2 y( ]! n0 w+ ~
} % e# u6 ^8 d1 R; ^6 V. T2 w% e 2 Y$ J( H( u- I0 o# d //反转数组, F. F1 F1 ]* z
public void reverse(int[] arr){ `4 R' i+ ?# U A, t1 q6 T for (int i = 0; i <arr.length/2; i++) { 1 U. Z& o. [7 J$ @) A int temp =arr;( f7 y. F" X- W
arr=arr[arr.length-i-1];1 p; a2 H) [7 H4 U1 Q8 E
arr[arr.length-i-1]=temp; # P0 b$ T/ Q9 ]. w! X- F& M } 0 Q+ H9 u7 p* W3 \+ a$ m } : J/ @. `: A3 ?( `, { # R+ d( k7 t8 q0 {! y //复制数组$ F. V0 O2 g1 x+ W* @4 k8 e2 S9 E
public int[] copy(int[] arr){9 m; z% y5 e! [5 H; |& d9 O
int[] arr1=new int[arr.length]; & g0 F- h3 `4 n7 P* a7 S for (int i = 0; i <arr.length ; i++) {2 |5 T7 Y3 G! g$ w% m% @
arr1=arr; ( [ W$ B7 V; [& z% r6 ~( Y+ } } 7 D0 x0 [' N' K3 `/ R4 V return arr1;# g. e7 @$ r$ R2 ?7 ~" Q
} C/ o! k! M$ x9 p* f % H; q2 [& Q: b //数组排序(冒泡), u3 s* W1 H9 U" C7 o; j
public void sort(int[] arr){; I) B. |0 R2 ^# ~
for (int i = 0; i <arr.length ; i++) {/ C7 J. q9 L* V: |
for (int j = 0; j <arr.length-1-i ; j++) { 6 s5 ` o! C5 Q0 K1 w& [7 T if (arr[j]>arr[j+1]){% T* w t+ x5 L) u6 r
int temp=arr[j]; $ ?- N- |0 H4 s& n" l) @ arr[j]=arr[j+1]; , L3 }5 h$ x6 y/ q6 S C w arr[j+1]=temp; # ], J/ ?. [# N) g$ i } 9 M+ I; r& F* c+ p7 \4 m }. f; }) A* E0 q4 a; a- N
} - r2 O: Q* D% T3 u' y } : V& P& P* z$ l' a) C7 C( w& M* _, X$ {" m
//遍历数组1 U0 p7 _9 j' M$ y% m
public void print(int[] arr){4 _% Y7 F G9 E9 o: [
for (int i = 0; i <arr.length ; i++) {" g5 F; s' I2 x1 q' Q$ M+ g
System.out.print(arr+"\t");! z4 t f& _( i5 t0 I
} ; \% E/ |! t9 B' s: p8 q2 [6 N System.out.println();//遍历后换行 : T- r7 T$ e8 \4 ^/ C7 `7 y2 ] } 4 L P- u& M( i2 E' ?/ d5 }- j6 Z% [; Z- x7 P3 j1 S/ P
//查找指定元素+ V; v0 g9 n" x6 N) X7 x" f
public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素). |5 x' v1 I( J) Z- @! Z
for (int i = 0; i <arr.length ; i++) { / R% U3 q1 H m6 w' }8 M3 y if (arr==dest){ " Y8 o' {+ F* P$ c c2 e% J return i;& P: u( S+ U& B0 \( w6 \! Y! { F$ i
} 3 b9 s* Q( K$ ] } % z0 y( I& C- ?4 o return -1;//返回1个负数表示没找到5 ~' O$ N/ L9 O% Q
} . n$ R( L& P+ D} w; S& B1 c+ e8 H
# n c) r6 o2 K1; A1 [8 p8 B0 A- n, z; G3 t
2 3 d, P7 ]" @& T0 S3 d, m% d6 x32 o( K6 T" y7 Q4 y# \3 Y
4 + d% s$ r) ^' i, |8 e8 Q5 e/ C5! q4 q8 w/ O. ^% U2 G0 b$ y, N( w
6 ( s8 X( k& m9 F& X; q5 }7 2 M [* J* j* c4 T3 Y8 m' f88 x5 A% _* {8 n) _$ @
9 ) b5 `( V! U; s9 v5 _$ W100 D9 K2 T2 n; {
114 I: k0 {) ?/ ?( z) K B; l0 d% a
12 K5 e( {; Y: j13) H3 M% m# z0 o: Y
14) m" w/ q: K0 `2 P
15) r% `: e H2 u/ ]- o
16 ( G" @' b, y& Z* ]% q17! _# f1 F5 s" m5 h! ~2 M+ u a
18 % B; h* c, G$ k8 K2 v' s, V! B4 ?. E19 0 f. z; J/ n- l+ H$ w8 }" S4 c20- Q, m; _- ?" X* a, R! t. n
21 ) S9 `7 q4 a S/ v22# ?; s$ e! x! w% l9 `
23" k8 g# X& {, L
24% [7 M3 A" |! E. P: n0 _" d
25 # { i: z1 z; s* P+ {$ U7 h" v! T26: x% T8 k0 I0 }6 m" _
27 . b4 X$ b1 Q) l p0 @' b282 O" H, R8 v, H0 V
29 8 U z" a2 F" L% C30 W1 k2 Y8 D7 Y2 B3 `1 l% _
31 % V8 X: W b$ S, Q32 - [% o; x" c) h4 g% t1 ~; u. T33( N- a: B$ l* C( Z
347 ?, W1 @& T7 u/ l5 S0 t
355 M+ M, W) U* z2 I+ g
36/ O/ E. d! Y) A
37# y( ], f, e/ r, k3 W
385 W% O( E1 Z9 m. L
39 : ~. @4 n% T+ s; K: D: g40 % U* R' K% g% U41 : T. K8 S+ ~" J$ d42 + Y! }3 Y* B- I# z8 r43 + u0 J' H6 X5 P7 w44 $ {5 [ s- E! V8 W9 i45 + e( M; l3 k) V46 0 j0 @$ ?7 q0 G0 f5 ^47% b5 }% W3 T( i- Z: `
48 8 `$ C: u; `; O) W491 Q$ P! T: n/ d! [ ^6 X- Q
50! N! r, ~- J9 e2 Y
51) z% [1 U @" S8 h# _" a' B
524 z& V- w. L. u+ s! R/ M9 ~
53 $ B, a8 b' T4 c" }4 l6 I$ [9 n54, w4 }" r5 _# E% s" z4 w! w; P
55% g. E# F7 S8 D/ p
560 V' `2 k8 K4 d; a- y9 J( H1 j
57/ s7 s+ R4 j2 D% R" f# ]( r
58 / @! z9 y1 R; L* Q59 " m1 Y- q* L( W2 |8 I1 @60 & Q* @- u+ e$ v7 N5 d611 D' p. h, @, O. y/ s& Y) H# q/ M
62 $ i1 q: {6 ]1 G0 J6 V3 v7 s1 ]63& ~& P) Y7 y' Y. D2 T) u
64 " a5 f2 x& G/ y( ~# p# }$ U65 : e C* y, k$ y$ k6 f3 D66 7 g# U' h# ?' p67+ z0 \4 |% d! z; Y1 V* i
68 6 Y9 t0 y( X9 M. a& N5 [69 : p w. y( r8 b# H( B4 ^702 B( ^' N% } K( T: H) e
719 ~7 p; e$ c$ u& Q
72 : O( ?' c4 g# g73 ! n( e& U7 i( Y5 T- j8 @744 Q _( E0 z+ R m
75 ~/ G% l# {& n76; `$ _& {" c! d: m0 Q/ L
77 8 n6 P; ]! E% `9 z9 Q0 P782 ^5 X7 a+ c4 g, b( P6 p2 w& I/ o
79+ b4 E# @4 S& D
80 4 f; p: \2 F! B4 i1 H; l. g81 % p3 p% d1 \% c+ t- Z8 h82 # E6 z* H) _3 f4 e83 : K& Z% d* S$ c' U& W0 P0 O84% K* X. A9 c# T a" x, s" I
85% z" c5 r' ^: E/ I. t& D
86 1 t2 K5 w, \ @7 D+ a87$ {5 [1 G. A- Y8 x3 Q4 b7 q) ?6 ^
88 3 |* L* W! Q1 Y, ]- W89 . S* _' d7 g$ Q' @: C$ D% `90 : x5 S9 Q& ]8 ^1 S- X$ U第二步:在BCeShi.java中测试7 D1 k! p& c. t
ps:这里两个都在一个包中,如果不在一个包就要导包# b' b2 Y/ b8 i$ Q% l
2 M1 g1 I* e2 b% o+ b
package dierjieduan; / ]( }4 a! x+ ^" a" R$ ^public class BCeShi { # V% Q/ X' x* ` public static void main(String[] args) { / Q* ^! y5 {( V. v {7 a0 q2 g& B B p = new B();//建一个B的对象4 y7 B; b7 ]% n- c' P
int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组 9 r6 Z" L; y" z //求最值、总和、平均值 d$ {" B( g* @5 O& y
int max=p.getMax(arr);//最大值5 T) t# E8 G { K/ L
int min=p.getMin(arr);//最小值 : C! b, t# _ l" e& |9 {$ n( v int sum=p.getSum(arr);//总和 2 D# S/ O( V; J5 S1 {* ^1 ] y) v double avg=p.getAvg(arr);//平均数( P, |7 C% q' g5 g# e* \ {- w
System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出 3 L/ d6 b$ Y3 W& x7 @9 ~ p.print(arr);//反转前遍历(第一行)( r: Z, T( j9 }% U, x M
p.reverse(arr);//反转数组( I; t: k: X. z! \: `3 I" ~
p.print(arr);//反转后遍历(第二行)0 |, Z0 ^8 a6 A3 c6 G. e
int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr Q' i2 h2 z7 U( W' k
p.print(copyarr);//遍历copyarr(第三行)! r* k) Z2 q6 T+ S' q" ^* a4 l
p.print(arr);//排序前遍历(第四行)& Z, ^; G7 N+ }. y2 ?/ F
p.sort(arr);//排序(冒泡)( t$ {$ p' ^) b5 E2 i
p.print(arr);//排序后遍历(第五行) 5 |" S+ T) Q5 W% a, i2 E System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组) : c4 O& E; R6 o" P9 Q int index= p.getIndex(arr,34);" R1 r% f& r7 n9 V4 X8 s
if (index>=0){5 C3 Y3 `" q' `* W
System.out.println("找到了,在位置:"+index); 1 J& P3 @/ k* m }else {* ?- @5 J8 Z# c' t- }
System.out.println("没有找到");& _ ~( @& _$ {6 \; @
}; E9 | j# o, E w
} ( z& y! A& ]" }: w9 ]}) x, t4 ~4 O3 j+ ?6 G% V0 {
) ? a e" ^% S11 G! j) R- D$ o' R! I+ y7 A
2 . r% R% G, a! G6 m3, r' U& }4 S$ B% |7 L0 W
4 ) S% Y! x6 ^" L, V$ v/ z4 r5% u3 q) y) x0 t6 z
6" H1 s# A" D4 `( ?( y& x; h
7+ N7 R, _- {, _2 N
8 4 i0 _% A f w5 B) V( S4 v9 5 d2 |7 O; K B! P2 s107 U/ Z1 {5 h3 {" X+ s
11 ' q2 f8 Q3 D/ U0 S* t: m) G( {12 2 b. B7 \$ {% v2 l$ z13, u6 I2 q9 ?" a: P% b
143 Q4 O& ?. c3 c W
15# e0 w7 J* v( ?* \+ C
16 , `, a* a6 h8 z$ R17 ' O' N2 P8 }- b1 h3 N18$ m7 t: L f4 H6 K0 D
19 7 R g$ u: m1 S( p- [' s; t0 {20 / ]# V3 A: \; N9 W5 p21; b7 J6 N7 [* N7 N; O
22 6 s* T; k& I1 T: c( S8 `- T23 ( T( u# b. ^ ?4 n2 K24$ c! C* v) F; c
256 l' }; u5 Q, U' e2 ` ^" n7 Q
26 ' Y; d3 C5 y Y27 2 `$ [+ v; g$ F8 Y28 - L o5 q- }3 y2 m1 O运行结果(对应上面main方法中的代码注释来看): . b4 B7 m, M1 [- D. a7 ? P- q) k5 R/ e/ W) u ^$ a9 ?+ m& Q
———————————————— . l! z6 O" k+ }. k1 _/ e2 c$ G版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。" o8 Z( `& Z! z; Z' ^. i
原文链接:https://blog.csdn.net/weixin_45869823/article/details/1267547974 ~9 H, E3 U1 J4 n- |) s
8 b% D9 d" k1 W( J* D8 a4 ]