- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563325 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174220
- 相册
- 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-自定义数组的工具类2 k; @1 p/ V' n. B6 N4 M
% c( @) v, i9 o& L. G" H# ]
java-自定义数组的工具类
3 p/ K% ~) }8 y% h7 o7 J! @7 g% x
2 ?, M5 e1 p c文章目录
9 j) K( Q: U; Y: o! n* D% Z% Njava-自定义数组的工具类; s" o. q% l0 }8 L2 m1 a: x
第一步:封装方法到B.java8 R+ _' ~" S+ @( R
第二步:在BCeShi.java中测试
8 A, q+ ~2 n- C f6 r: C运行结果(对应上面main方法中的代码注释来看):
+ ? b: S0 ~' w/ @/ F, Q- W! ejava-自定义数组的工具类
% Y/ e. {1 T k0 p. XJava—数组中涉及的常见算法有写到& R F' z2 C4 g# m( x( F
1 ]" D3 b5 E6 ?) ^$ _
求数值型数组中元素的最大值、最小值、平均数、总和等
( e! m0 a9 d& X* T( @: y数组的复制、反转、查找(线性查找、二分法查找)等等
1 w1 z2 W4 q1 D& s/ G3 W! ~数组元素的排序算法等等
3 _6 x% Y, a1 D- R* @# ^. I& l' h( M这样的功能都可以封装到一个个方法当中2 {6 X8 n, Z2 c
A2 A% T0 W# b4 U- Hps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起
- r- |6 v1 }7 V" i+ w/ c% ?
4 D) ~" f. o: N, t* i* D第一步:封装方法到B.java) ]' p# P& K6 V3 d. Q
package dierjieduan;
/ k( i% _. x8 n//自定义数组的工具类
8 [5 {; d, ]5 k! Kpublic class B {6 P" B* l* S! ]; d- R
% H- Y; w B" v9 U! j2 }
//求数组的最大值! l* b+ z1 L# g( d$ k6 d
public int getMax(int[] arr){& v% D; D( v# @4 D7 y
int max=arr[0];* O4 R* G! j& B$ w1 |; x
for (int i = 0; i <arr.length ; i++) { m' `. I9 ~% C
if (arr>max){4 L# y5 N* o& q+ w$ H$ [
max=arr;! C) J% |4 m$ ?/ U
}7 }7 Y$ M, j& B" J5 Z& A3 U
}$ q- _) c. z/ S7 e" g- K8 V+ v2 r
return max;6 A$ Z, W+ o+ N m. W5 o% W
}5 @$ z8 z, ^* j" Y
4 k. T) o+ z0 D: Z( P //求数组的最小值9 G; X) {% w% a4 g6 k" W
public int getMin(int[] arr){: Z5 L; }' W( F; V
int min=arr[0];% h0 H# z# m; b/ b+ m
for (int i = 0; i <arr.length ; i++) {
+ Z8 D% j( G1 I0 [+ @ if (arr<min){
; @2 U% N% P& R8 I% K min=arr;
6 J+ E6 S2 A; x7 W) g9 J. z6 Q: W) H }. W% j. v, d u9 h' H3 r
}+ J6 D* ~, e7 J
return min;
# y7 F6 @- ?# g) ] }
/ e# R+ o7 R3 `0 w9 K2 v% d `9 M$ ^% t
//求数组的总和
4 v# t" J4 M6 L public int getSum(int[] arr){
. n6 X, T0 I2 N: N! z( u+ Z int sum=0;
0 \' F K/ G9 _4 Q for (int i = 0; i <arr.length ; i++) {# H% ~8 y0 s3 c9 [5 k" e
sum=sum+arr;
+ Y7 f4 ]0 }8 ?' f/ J# r7 ?! s }
$ l. y% d# d# b) @8 v% Y return sum;+ ^7 O" m! x6 L9 V* C
}% [1 h9 j1 b1 ]
: A9 W3 K+ e- R9 }. T4 s //求数组的平均值5 h0 p0 P: b. J0 o5 [/ T
public double getAvg(int[] arr){. [' G1 q5 R8 `& j R3 ^3 r9 E# k
3 G1 e% w0 W+ [6 Q
return getSum(arr)/arr.length;//注意返回值的灵活运用" A' R3 Z% d# {# ~
}9 Q( h. b" v; k) z. i6 K
1 O% Z$ t5 K" J //反转数组
" N% m$ M9 l/ c% D public void reverse(int[] arr){
! ^, U# a6 [! Y: f for (int i = 0; i <arr.length/2; i++) {3 e2 \& g ~" ^7 t: S9 n U2 }/ V
int temp =arr;
`2 ]( A/ R. Y+ l' o arr=arr[arr.length-i-1];
* Q" m Y* N8 P7 {) |: l, s arr[arr.length-i-1]=temp;$ h1 M9 K* H% Q0 q6 r* v% A. ~
}
! a% |) ?( ?4 o& Z0 {; w2 Q }
2 A+ s" {, ]& h& p/ A
+ r6 M" {6 R) V7 J- h9 p }8 F! C //复制数组
$ p. W' E8 @7 x" n6 @ public int[] copy(int[] arr){1 \9 T# @6 d+ h2 T+ N
int[] arr1=new int[arr.length];
/ E1 `: N' T, Q3 k# {. G for (int i = 0; i <arr.length ; i++) {
5 r4 a+ }, [' H arr1=arr;) ^( ~9 L4 d& N# \" A# _) O( t: w
}, e P4 G" ~( j9 t0 H! k) H
return arr1;9 x. ^* L8 z% e# V) G' Z4 `# L9 k. w
}
- W2 _1 y8 E: J
% v5 Y$ F6 E4 b( M! D1 {- G //数组排序(冒泡)
/ c0 g3 k- U' c, b: T }% D3 V* @/ N8 V public void sort(int[] arr){! O2 s% _7 Q* b0 j
for (int i = 0; i <arr.length ; i++) {
a7 A/ X7 q3 @1 }. | for (int j = 0; j <arr.length-1-i ; j++) {9 J1 L1 B1 ~, d7 Y1 u! F2 P6 e' ~
if (arr[j]>arr[j+1]){, k5 ]+ Y* S3 N4 H: [7 ^
int temp=arr[j];
- B! `2 ?6 @) h# M4 L, j arr[j]=arr[j+1];
; a- O# B) V! S arr[j+1]=temp;
& t$ g* k6 G2 U0 Y* _$ g% R% F }
* f& d; j; |4 [5 W, N, X }
& S8 R' p3 N8 S8 W+ ?! R0 w }
; p: E/ |- U9 _" `8 n }9 z0 E1 Y5 n; _4 }2 @+ I
" t# J5 S7 J# o
//遍历数组
$ u: Y% B) c* H# W. X public void print(int[] arr){
" G8 E$ h2 @$ w/ Y% Y! ` for (int i = 0; i <arr.length ; i++) {
% d0 c* f( C+ o! S3 O% X, t System.out.print(arr+"\t");
; I- v0 u( z/ m }
+ _6 w) Y; X4 b# P) J) R4 f System.out.println();//遍历后换行6 D9 K ^ d! T4 ~
}
# N" d/ L. ^8 w8 V' C' Q: Z" Y+ L8 [( n" {2 O2 i
//查找指定元素
8 J# c7 `# O6 y* H. R4 I public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素)/ n- B9 a* _; o
for (int i = 0; i <arr.length ; i++) {
6 f: q8 ^; l2 {: c! L if (arr==dest){
$ G9 |( U2 R* l+ y" F# g return i;4 \: U/ e+ C' T' ^
}1 B0 @. B. ^+ K6 S4 S) l4 s3 V7 S% S
}2 b7 r8 |2 C- d* C7 @
return -1;//返回1个负数表示没找到8 @- T# w7 E3 t+ }) ~
}
o- p: R: g& j5 r5 j% R. \}
o" e. R* T+ u' w% Z5 ~
% A+ ~( Y& N$ G6 D$ Y1
% J9 u' ]$ {" l# @( t+ P! p/ {2
% ]4 l8 t$ y, j" \2 R* d3
* I% v. ~% C& Q" x/ w# n4* M M- g% L9 S
5
7 i" E9 x' O) O- I0 |. [& w X6
/ k* t# T& r: g+ B. ^0 h7% Y7 z( e u. \) ?0 [
8
$ Q- E* y0 V4 z& s7 C: M; o, C9; d6 t# k9 E3 h# g6 G$ N0 H0 N0 Y+ h
105 \& b1 t' b: k' w3 H
11! N+ U& D; K& n/ S
12
; Y0 z8 b" F, S! S3 J& m) C13
! {) ]3 P# G. o14& F9 m, ^' w1 v2 k* B& L- x
15
; F4 }- m. p( H8 C# G& I! j160 L r0 x# q; W6 I
174 ]' S; r) A' p1 b. k' ~
18; I2 M* t5 R: R. A9 C" F
195 F( q& a0 L$ I5 k% N4 `4 i7 I$ c
20
, N; u l* k7 d# U* o+ \2 O21
% P0 @/ c& [0 ?4 D! |. D22! J9 d0 k; q% u* R9 r
23
# r6 d. S$ a' e* c9 t& V- s24- ~( `& c1 @7 W7 P; `* U. ~$ I- T
25
0 t* p' j9 S2 M! q26! G# s! w/ T+ h) `- y: w+ H
27% _6 X1 o$ b g5 K! k' N- A
28. |( \. o4 u0 i6 k6 L8 J2 H
29
. t7 }. e( S9 a$ X* x5 ]302 u+ x& G/ J o1 [
31
8 \& J8 m, \7 p( E322 |" r3 c A* W) R" }1 T; K
33, k$ L R3 Z* Q; B, B, o4 t e" t
34
% O7 I$ c: N/ _! a0 i35
: s9 z+ h2 A5 ?$ h% b& ?. e36
, b$ k4 _$ `! F" X+ |, M/ q37# S% \+ C7 Z$ c3 o, i
38
$ V) Q- i' P4 x8 U) H39+ ^: v3 W) D+ H
40: t4 e! d1 G+ Z6 H" F
41! V6 R- M& I1 v8 D2 R' v
42
$ R9 [/ a" ` L, w( s432 W( z/ h j0 R5 Q l
44
+ x5 v- E5 |5 c: Y% W0 W45. t7 b- r: P+ U+ c
46. |: }6 _* z' r3 @/ [4 e
47
) S+ }5 q: b a# R- ?( T/ [48: i0 `/ x; f8 [( P6 F( n2 h
49
2 x& ~0 T% c1 E6 U o# M3 Y508 q8 u$ N" g' l$ Q8 U+ P) n
513 G; A. K6 t8 ^: w8 N5 z' L! b
52# O; `7 p! o: Z1 e$ d& V: z
53; a6 W2 d& i8 V# j
54
3 X- t0 n. V: F0 c553 y, P1 t1 L8 z; k1 n4 l
56
% l! y' @" v6 m572 Q0 y w5 \/ u. m
58" G: t, o- @- i2 N2 @- b! N
59
( l' z6 m9 A8 J/ G1 o! {5 o604 ~! Q! H' _5 M b
61
" F, E; n" M. K |62
! \0 n: s- i; e5 _63
/ c) r) {0 M* Q64
/ y3 D% T8 a! d7 m0 ?65
9 R4 w- e! V9 a2 S666 T# }1 v3 G8 g. }* s/ O& ]; ?
67
O2 v4 E* d1 X5 W- h: t* I6 a' h: k68( h/ p! G4 G3 g2 {5 Q0 f
69" z5 N" p% a! {( I2 {9 T* y! D$ I
70+ |: f, I, y+ e1 E
71! Q/ `9 ]/ f1 u0 b- m. M; q( l
729 \+ b. I2 I6 u. I K
73/ v0 F' C& E. `( B7 e
74
5 L* S: J+ O1 q4 _$ D, @/ C75
3 l- R* d$ L0 N P1 Q764 A ?. [5 k7 f O% D
77
/ [9 k+ Q6 W9 c( v3 d0 O78
' Z3 B6 C1 q1 w# q7 t& A# W# c1 D79
& q3 O* B. b# ^+ c* d, Z2 @803 A. h, O1 u7 f5 l& H
81
) G v2 M! [7 e82) m! f8 f- O( W9 g0 x; p
83
" U K) p2 c2 y& T' |, u# ?# n' V2 [84# y6 g1 }, y2 u* v7 R% l! h" V
85
; a3 ]3 ^3 K# W86% G* {8 i, F+ A, K. t6 K n
87( \4 `! p: z$ O
88
9 M+ k+ P* M( t$ C( i8 O8 }( q898 \* ~6 k* P1 q$ X; c
90! g% `- A! L! Q. _+ p* T$ w
第二步:在BCeShi.java中测试
7 F7 e- [, @, a; b$ t0 o, d% ?" R7 Lps:这里两个都在一个包中,如果不在一个包就要导包
5 |8 U+ R* M' M/ u* @
) \( O8 E) J0 M' B- hpackage dierjieduan;
- J7 m" e8 N8 V w; Ipublic class BCeShi {7 b3 v8 N) t$ ^+ t. r2 s* B
public static void main(String[] args) {7 u, U) [, o1 d% ?/ O4 L b
B p = new B();//建一个B的对象; l8 {* J2 c3 A5 L' P
int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组
2 d6 Z: h- x+ p. L$ h //求最值、总和、平均值2 d, {: H8 Z! u. W3 W5 d( i& c
int max=p.getMax(arr);//最大值9 v# B- g; j P. s" n
int min=p.getMin(arr);//最小值+ m' F/ @8 A* f. l& Q, k
int sum=p.getSum(arr);//总和+ E( r% x4 {) I+ w6 Z
double avg=p.getAvg(arr);//平均数& E& g0 M6 D: o% X8 B" o: K
System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出
8 Y0 r8 n- v* v. I p.print(arr);//反转前遍历(第一行)7 q8 q G4 a. O- T- Z8 O
p.reverse(arr);//反转数组
# K2 k5 _4 f3 Y( O! X p.print(arr);//反转后遍历(第二行)8 \3 H7 {9 m+ P; J6 j) ?/ T
int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr6 i0 H# U8 m# w9 v8 U: Q" f
p.print(copyarr);//遍历copyarr(第三行)
2 ?6 H) i- [) M p.print(arr);//排序前遍历(第四行); C- C. Q4 s8 }! `
p.sort(arr);//排序(冒泡). L0 T9 F- u8 y4 X' A
p.print(arr);//排序后遍历(第五行): k+ D1 c' L% g9 V1 }; U4 `
System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组)! E* w* w6 t" g& V
int index= p.getIndex(arr,34);
2 [ h8 ]; z9 Z9 s if (index>=0){* X' F) e9 Z5 Z0 R( w
System.out.println("找到了,在位置:"+index);
, _- Y* i1 G! @+ H }else {4 Z8 n, O+ y! D9 \. j
System.out.println("没有找到");
1 d+ s8 |( g- G6 \1 A }% R( z/ E& ?( K$ W( U* Z3 I
}+ j% v3 Y5 q" u. Q. a
}
. I$ ^. u) A" X
% y) ?/ _4 W$ |9 P; F1
5 i# o- N* N3 j# Q% S2
- a9 Y. ]/ a( O32 U6 Z0 v$ b- @! ~# j4 O6 C
46 _0 A5 b. }! p, B* V
5
6 l) \/ S, I( a2 P& `6
8 y" Y- q9 h3 i" p7) I% I" Z9 X* i! T! M3 ^" {' a
8! O8 w& a+ A" {: e, ~8 }5 m
9
C9 F5 H3 x/ Z* R# r0 B- ?10! \3 v: \9 n6 G& T( h1 z
11
% F8 P( H9 b6 y1 U12; A4 O, k5 q: R+ v) o) p. J
13' s3 ?* o3 G) u
14
6 B- @8 [. t- X" |' ]15) z' h, Q" f( M; j$ j
16
3 k* _3 D3 |8 R U) i, a8 @17
9 t, `' f! S2 F2 k$ q: Y18
/ b8 Q" m. t7 ?1 _/ S4 @193 `, l& V' L3 r8 j; C) {6 h+ v
20
2 M, J! F) ], ~# ~+ Q9 ^21& @6 z& `$ {& ~% p6 x" U3 r1 W
22" A+ V1 ~$ {& K
23
+ h. g; y6 w8 [- p; [2 e24" J. e1 k- b3 i% ? M- J5 h. {
25
7 z: y5 C' { k& v6 Q26( O% ?8 d; t7 q+ N) A) b
27
. U9 o: D" Y! P; Y) o28* w( E! y) d) W1 h9 _ `
运行结果(对应上面main方法中的代码注释来看):
4 D! [5 H' B& Y/ X a, @# D4 I2 R% u* n9 O9 o' m
————————————————: W3 n, {) }0 N) {2 u n: ^6 M, ^5 k$ L* s
版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 M k& \# X9 c) E
原文链接:https://blog.csdn.net/weixin_45869823/article/details/1267547975 g& f7 T( A2 f; L; m. C
. ?; T4 v( S$ Q9 @
8 ?, Z% l$ r; J- Y* z
|
zan
|