- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 566291 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175110
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
java-jajava-自定义数组的工具类va-自定义数组的工具类自定义数组jjava-自定义数组的工具类ava-自定义数组的工具类
: n0 b5 P& U# B8 b, ~3 b" n$ `" [
& {/ `$ M; m8 h# Bjava-自定义数组的工具类& V( g0 B5 {! N; o2 W
" s4 l8 {$ {3 F% z3 p
文章目录
% M- x- m! F1 O- Rjava-自定义数组的工具类9 v% @! s: ?+ p. n
第一步:封装方法到B.java
- G% x1 _" C/ v0 y8 B' S' f第二步:在BCeShi.java中测试
4 y( b: h; o0 ?, D# z* v) C, \运行结果(对应上面main方法中的代码注释来看):
# W4 V9 ]5 g5 b. L/ V* O2 Kjava-自定义数组的工具类
: K9 U0 m( A" x& H% L% @Java—数组中涉及的常见算法有写到
* C" p; _3 `$ d+ N3 M$ v
0 _& b: ?8 W& |, `. \+ Q3 j9 C求数值型数组中元素的最大值、最小值、平均数、总和等* N |7 _7 [$ M0 n& z! ]& I
数组的复制、反转、查找(线性查找、二分法查找)等等
6 ]) q$ s& B/ j数组元素的排序算法等等8 J0 y: ?/ s9 x2 T
这样的功能都可以封装到一个个方法当中
1 y- M+ A" ^9 ]5 O- D" l" Y. P0 t% `& u, U9 ~4 T% w1 ]# P
ps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起8 X7 _* Y# P1 D# @" X3 g
+ e: z$ }# M6 r
第一步:封装方法到B.java
6 a. T! p. d$ j/ o% B V3 L1 ]package dierjieduan;
. R: B, b$ m8 F. R//自定义数组的工具类5 G" @7 s2 ~+ l% I% L% H3 n
public class B {, f1 Y/ g& i% F1 i# f
" R$ H% \$ t) h3 u, r
//求数组的最大值" e6 f9 U4 _; I/ K5 q
public int getMax(int[] arr){5 K" y. r2 _) R. i! \( z5 t9 K: p
int max=arr[0];
: R0 v' r+ T7 Z$ ~9 p for (int i = 0; i <arr.length ; i++) {/ P& Z: \) _# u q2 v+ v
if (arr>max){# y! l" f8 J- A' { V4 e9 N1 t
max=arr;
% J+ l/ b7 [) m' {9 ~+ o }2 o P) p1 m% \- v- u
}
9 ~0 f5 e& H$ O$ M9 v return max;
# h. \6 x% r! x8 @, Q$ m! k }
5 f2 b0 E7 u t/ J; ~. x+ {* Q J' R" h1 y1 _! B
//求数组的最小值, a- c# `& S7 Y
public int getMin(int[] arr){
7 J A8 }4 m- I* I int min=arr[0];/ W H3 t( i9 i
for (int i = 0; i <arr.length ; i++) {- g) @2 O( \9 C v
if (arr<min){
' W# S1 r) P' C6 {% K min=arr;% N/ E' _' N2 q2 z* |+ l0 z2 M
}6 ] Z# b9 P& V. R \$ O, `9 G
}
0 F, [- n9 b1 W) K return min;, v3 S1 u7 A" H, `
}
7 i# P& v+ }% d* @* [/ C p" {! a$ T5 i: g! ^6 p
//求数组的总和! D4 T2 Y6 K* l2 \( V* s2 ]
public int getSum(int[] arr){
+ o4 ]9 S1 ^0 D6 h int sum=0;
4 A7 O9 {& O0 u* B' }- p& t for (int i = 0; i <arr.length ; i++) {- {1 c. v/ i- I" a& ]/ j& G
sum=sum+arr;+ A9 P8 {% ^6 l, [" W( z& g
}
9 m8 N" k6 ^) ~% r return sum;0 C" F: ^. v1 v% j- t2 H
}
* [( q( M5 ^; y+ z# \. [2 P; K# ^2 I$ z( g+ A
//求数组的平均值* t3 \! u. A) m) r. Q" h+ ]! V
public double getAvg(int[] arr){
7 ^' V6 U& D/ n( U' Q: ~% Z9 A8 f4 F8 [ X' [) ?) l `
return getSum(arr)/arr.length;//注意返回值的灵活运用
' |4 _0 D f/ o% X8 @ }
% M p5 C, }+ E$ i `
9 N& g* b1 q- e: J //反转数组" \! N$ V3 A: d) Z5 v
public void reverse(int[] arr){
; P/ G1 F, g1 G6 U* Z for (int i = 0; i <arr.length/2; i++) {7 h% b* Z- t1 m# e; o- N$ ~- F- D
int temp =arr;
$ N$ {& y8 G6 U& m' @9 l5 j arr=arr[arr.length-i-1];
& O8 U$ q; D+ O# s! J, S0 l arr[arr.length-i-1]=temp;
# X( {( ?8 t/ V2 T- S }- y% V4 E4 o3 K9 }
}
6 @1 I9 h4 Z, g
3 M: P/ d& F. v2 ~0 Z9 E //复制数组
% b0 q8 q$ b. c) d C$ r public int[] copy(int[] arr){: H- _/ s& y5 a, h( G
int[] arr1=new int[arr.length];
" p* x" K+ e) g" x) F7 @; q for (int i = 0; i <arr.length ; i++) {( T9 L7 V7 `; b8 m! ~: o# j
arr1=arr;
& N0 F* W* r; H w! I; \ }
' g# f3 d* x+ q; a$ W8 Z& X return arr1;
* E3 } r/ l& q2 D# R }
5 A0 l' A+ N5 e% q8 o. x
' Y/ U8 G( `; S //数组排序(冒泡)8 s6 @+ O( ~" t" g- s1 `
public void sort(int[] arr){9 U# M. [4 ^4 V* m* ]
for (int i = 0; i <arr.length ; i++) {3 r( r( v; G) Y5 C# C b' d
for (int j = 0; j <arr.length-1-i ; j++) {
1 }. d* h/ {' w! h# R' l; B# M if (arr[j]>arr[j+1]){
# B; W% c0 o. C: C: A int temp=arr[j];
' h; r+ @* `2 R* e+ O4 c: v, p arr[j]=arr[j+1];6 n. e' U* y+ M: A9 p) `
arr[j+1]=temp;$ v* f# G9 A; k
} X z3 X, u+ K9 p# M U
}
5 c8 @* {) K+ \* X7 q$ B }2 o" y/ h8 K( l) L
}9 B% x3 ^( \+ _6 k7 s
6 _& ]: g8 f! ^$ Z! b- l) I( x
//遍历数组
7 p6 A9 p# a- c" B0 j; a( Q/ N public void print(int[] arr){, o' ]$ p. C7 i
for (int i = 0; i <arr.length ; i++) {! P; a( h- A: F- t. O7 z+ h
System.out.print(arr+"\t"); D2 ]5 t8 n: c m$ S
}
7 e8 W2 {# Y% S% z System.out.println();//遍历后换行! L. p5 Q: l$ ]- t8 S
}
4 i8 F1 k* l) X' |3 S$ g0 V1 N- x0 e4 K& c2 Z8 t" v! ~, p: h" k
//查找指定元素8 t6 i, t0 U' L: R2 O: D9 q
public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素) E6 O; f9 E* T6 B" T9 @
for (int i = 0; i <arr.length ; i++) {6 w& `' d0 a( z1 A
if (arr==dest){& [, m6 _1 K% m0 F f" C4 Q
return i;' V: V" j; F' E( ^2 F; {7 k$ |
}; P' X. u6 {: h. n. `# e* _& L
}
% t3 t1 \" w$ m" H% i# L return -1;//返回1个负数表示没找到
l% R3 w" {3 v6 M5 ?- G7 y! E }
- H3 o+ s2 ]# t; g/ c; S}
4 Q( }8 V) x! a9 _$ z
. {1 E% k+ B6 [! \8 c& g; O" k1
5 o- x. m0 X; t/ y [ ?) u/ c2) Q5 T, F5 Z$ W% w% \" s. i; s
3$ K Z4 I5 c6 b; M, d* U9 M" Z
42 Z! ~) W, @% I9 y, E: ]1 Z9 W
5
8 Z, c' r* ^+ n$ b) t, Z" f1 z. [8 h69 O3 |2 M# G: D6 Y: x
7
( m: l& v& v: [# @# o1 u: D8
5 I# @6 c3 B, A! x4 r: j0 z92 T. ]- l; U U4 E W _
10
& `+ U, z3 r' j* d k7 b. R116 p6 v9 }5 C* n
12! b7 B: B$ `, m ~+ M, ~6 |8 X H* A5 P
13
8 w% B% R2 ?: k r; z" [6 I14
0 H$ k q4 T$ U: C1 d+ t& r15
3 c: o; Q. A! g0 P0 s. `16. z* D( r) X# ^. U* p
17$ ?( G0 i C6 Q2 P5 T5 u
18
( v. s9 ], f% |6 c/ t' v% Z19
: C' u, i4 {% L! W" _. y& e. M7 e3 q20
: T7 o6 @3 Z2 w) u% h, ]) A( G21# w3 h+ n* x5 n% T
22
- J: W" t3 ~% n6 h23% M0 D' a% r! S# a2 v5 Q" {
24
1 a# x1 }0 L5 A) ]25
& u$ t. z7 q8 t+ \- Q26
9 H2 J5 g5 |9 w* L; q0 D* ?' w27
, z* j; D' G9 ]) ^0 x3 }+ [2 {! p28
. a: Y9 C/ E# p& `29/ i& O( ~4 X+ T0 O! j! h6 G
308 f& s* {3 V' ]) t
31, }9 v! |4 c I/ p0 O b j% I
32
6 B0 k7 e: b. d% [* J% ^33
5 [ s4 b; ?" h! _344 |7 p9 T+ x8 U" Q3 t( ? e7 a
352 |, Y* e, J) h* R5 `; ^5 f
36* h! A" n6 Y1 i0 Z! M& F x) t
37! _' _ V% P& q; D- `. S
38, i8 {7 n9 P) A5 H( a
39( R" E# _; E9 W0 z
40% T2 N( h! r& [: z) i H! @
41
8 [( R9 ]9 c* N4 F$ \6 T7 q- o42! H1 ~: L8 @5 P; O8 M% m
43
9 L8 B/ y( ~7 @0 k+ Y; S44
5 d% v( X$ M) s6 E7 `45$ ?( |" i9 J+ m2 W" D
46
+ P6 o7 Y% N9 ?8 {- f% W474 Q+ M" U, |& d1 R( |
48
4 t0 F/ t. ]3 ~& f: i, @/ _+ z493 g* [/ X% \5 {) V/ Y+ G, r) X
50
, h+ y" @! q l6 v* @+ v516 Q! C g6 y# P* M
52
' A/ G/ J+ j! u( J! M539 T0 m+ G$ \- p5 p- B
543 Y9 N2 A3 t' ?& v; R {
55
. A/ R$ E9 S" M1 ` o56+ I8 x4 M6 P+ K8 j! h* h& Z% s
57
) I& H/ q+ P# O; e z58
" \: O0 _& a2 {5 B6 ]59
5 k, ]3 {4 i, P0 p9 T608 o' \! g/ X6 Q$ j, ?* ], n
61
0 G( o, L" S" ?% e62; O" c% b; L$ x
63* o+ C- d+ U" R1 N, P' a2 g @
64/ R, ^1 c/ o2 ]
65, X) d$ M# e+ }" w" W* m/ A
66
) X- h d6 }; z1 K# J67
# z& Z" N/ O$ j0 b) c" C68
& T, |6 Y* g, K2 Y& |' N69 b# K: E# t& V# Q. Z
70
2 z* l5 t/ R% j0 _$ \0 o9 x3 p71
( r9 E9 v; Z' W' s* L5 N72
. o- T+ z% h; a4 F73
; E* o# e7 u( |2 G' R- f5 F% D/ C74
1 g" l9 Q$ D" g9 f: E `( P75% i9 {8 P9 O! x( h
76# w) X: a% O3 x4 M, H
777 S* h8 w% S$ \; L" ~
78/ O% k& d G# {
79) X2 o- L0 N' P) V- B+ [
80* v( T, c* P# @( Z
81
4 I& E7 v4 ?+ s& u+ @822 h9 J e, U' L+ K2 W1 m/ A& G, W8 w% O
83, U [/ K( `7 n: w" T& @& R
84 n/ w$ w; y) o
85% q0 M& |& J: `. M
86
7 _' g1 I, r7 d2 [6 a$ u9 G87* ~! T. w& u+ g4 T
885 c$ b( a. o; j- B5 _" `+ R9 n
89& C' |4 x% Z/ F) s
90' Q! U' E% R# P
第二步:在BCeShi.java中测试4 L5 L0 \+ s$ i8 E+ h* u( J; A! R+ X" g7 J
ps:这里两个都在一个包中,如果不在一个包就要导包
/ f- z+ A& P1 ~ V) T
! ^2 L" j0 D+ `0 a; f4 cpackage dierjieduan;* u, [; q/ X0 z" e! R6 h) J
public class BCeShi {
$ q$ o# {- v+ F public static void main(String[] args) {* l |3 `4 d+ O, ^( _) k
B p = new B();//建一个B的对象( D1 W- f' o- C5 o' j
int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组
, p% J" K+ s( I/ h; ?) K" R //求最值、总和、平均值
4 P# ~. M3 T7 A+ B% S& S7 N( c7 ^ int max=p.getMax(arr);//最大值8 Y8 o6 H0 o/ P; a- }, ]
int min=p.getMin(arr);//最小值
1 {6 w( L _7 s& Q int sum=p.getSum(arr);//总和$ u v- _% k% ~! e% v, I/ }
double avg=p.getAvg(arr);//平均数
/ n9 {! G0 k9 S' v6 B0 B System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出( i* O: |. l+ U3 \
p.print(arr);//反转前遍历(第一行)
7 C2 f s. S7 r( Q% O p.reverse(arr);//反转数组: H( {* {# W/ D8 e3 B
p.print(arr);//反转后遍历(第二行)
8 h! Y* y* a+ w: k. G5 B int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr# V: M$ M+ }5 ?! I5 s
p.print(copyarr);//遍历copyarr(第三行)+ _' e8 `5 b! |' c% g! I
p.print(arr);//排序前遍历(第四行)$ Z. P$ `9 _! j$ R. C. c* H
p.sort(arr);//排序(冒泡)& d" U$ H! m6 |0 U1 w6 d' [
p.print(arr);//排序后遍历(第五行)% q3 u% c7 o- P$ K- y
System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组)
% z! C' d/ P. f5 U int index= p.getIndex(arr,34);" n2 Z6 t) ~- ]% t: n" }% j
if (index>=0){! B7 B* w- I9 Z* s$ v( |
System.out.println("找到了,在位置:"+index);
9 F. A2 G) T) E* ~ }else {
; @. E+ d" i, }3 N% s8 ^ System.out.println("没有找到");
+ E) W7 v% o$ w- }5 U }; M- t- R) x) Z6 V& }$ C
}
% q1 @4 g4 {4 Q}
. e2 K/ y' g1 ^" J
- F6 F& m+ D) x& F: F9 }1
+ m* R( e1 ?3 g8 R- o: \' a2
1 x, c6 t% {1 C1 o; D3
8 C; {) g4 b! i4% C$ I' y9 Z' o; W7 w( d2 m
55 Y: _9 O0 x; e
6
; }7 Y% V& G2 {( y% J# O, D7
+ m# Q6 \# r3 W6 H3 {2 s* V8+ r/ Z8 ] f, v$ _0 J
9
# Y6 B& s3 x- Y, x10
1 }& |8 I8 k4 E* ?11 T, S+ u! T4 d( j* O' Q
12$ B5 X! s- }5 H" [7 @0 C! R9 `8 U% v
13
8 k: w n' L8 Y. L14
$ R+ K9 t# q! y1 L0 v+ h15, v; @5 l, M( _( B* u
16
/ C8 e* ]8 K+ U' ~' ^17' \, p: A: g ?+ @ \
18' T; P! W0 m" `! s6 u; {4 w
19
! U' e* p. P0 c4 u, E' u20
8 `3 O% F/ L: D) k: b215 z6 K; E- X+ N! i8 ?
22
6 A: Z- S# J2 j/ E9 [( e& {' }2 Y232 v$ Q' ?+ X5 n# \7 ]$ w3 L, c
24
' [6 ]- r: Y! o4 A; c% m( E ?257 ~: `; {" L1 U) R: N4 A H; U
26& s6 Q8 s8 P" V" n* w3 i
27; H( T T8 u) ^8 s
28
4 n! x w; P5 O" I* Z/ ^( a( ?运行结果(对应上面main方法中的代码注释来看):
5 C) Z* e- K0 _. e4 n
& J& X1 e2 _3 c9 h( V% F$ E* \/ e————————————————" m' H% L6 S% |5 R
版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% K' t! ]: |" x$ N9 D! f
原文链接:https://blog.csdn.net/weixin_45869823/article/details/126754797
. D7 D/ k \' D% i
* m2 R0 b- B4 H, t% G9 O+ Q: y0 n& @! L: S& T ?, g/ b; s
|
zan
|