- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565171 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174774
- 相册
- 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-自定义数组的工具类0 y0 S% g$ J. h5 g
, H# I+ x2 f6 u+ M1 Y6 P' L6 gjava-自定义数组的工具类
4 o* }$ z) s8 {& H, N/ u$ ?
1 R; s% i# ~& ^: z" a2 x; P文章目录
# x2 f% M5 l6 p# [1 fjava-自定义数组的工具类
. a9 [ i$ W9 l$ D第一步:封装方法到B.java
/ s5 a- t/ G' p5 s, j' b8 n第二步:在BCeShi.java中测试: x! |' M9 |: d w- f
运行结果(对应上面main方法中的代码注释来看):: U" U' o, Q" p# U
java-自定义数组的工具类
) q0 n$ g" Z' [Java—数组中涉及的常见算法有写到" @ n+ X1 d$ Z: ~
/ H+ D9 s4 [( o9 k$ _: y求数值型数组中元素的最大值、最小值、平均数、总和等
: h& [( c# }# U0 t9 d数组的复制、反转、查找(线性查找、二分法查找)等等) s( t/ L7 k8 u2 e
数组元素的排序算法等等
" ]) z8 K7 J8 O+ [这样的功能都可以封装到一个个方法当中! i) y. y9 P& f$ V! J/ z; U2 u5 Z3 O2 z
( L& c5 X9 e9 J7 I; e" i
ps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起
# i) e9 x7 t- ]# ? E c" ^0 u: E5 Y7 ?) ^; k( F
第一步:封装方法到B.java
2 ]2 M' s5 y- l8 G0 ~, V+ |+ Z: Spackage dierjieduan;
: E: y( j2 w8 E( F2 b//自定义数组的工具类
% }) O6 L5 [' h( T9 `6 Y7 A1 D% j# p5 W/ Ipublic class B {' }/ z4 Q9 b* a
. F/ Z p1 N) x# A
//求数组的最大值8 y. }9 Z1 O6 c9 G
public int getMax(int[] arr){+ Z( x4 J+ [* K2 D' y1 A3 n6 |6 {
int max=arr[0];; Z. r O" q5 Q: n; m' b9 t
for (int i = 0; i <arr.length ; i++) {
! S* ^$ Y; g2 A" Q# { if (arr>max){
6 A2 Z3 |- n# ]) [# v' K8 P max=arr;
) N, t( ~% b1 p: ^! @ }/ t& W# \" G; a8 F! O* {1 o: d/ f
}; O: }- P2 i7 H6 S3 G# K
return max;3 V" y* j3 a G% Q8 M5 O! f
}5 o% |2 H+ g9 M5 I7 b, L6 w
- _% Z! ^ G$ i L/ {# E6 k/ f
//求数组的最小值/ T0 R S9 H0 X7 G. ^
public int getMin(int[] arr){
# v( ~; Z7 ~: m+ {( J% V) R1 R& f int min=arr[0];
! T" J: Z6 M! d( A for (int i = 0; i <arr.length ; i++) {4 T8 r+ j0 T3 u. w. a, @% H
if (arr<min){8 H. K3 X. P) s
min=arr;
5 @, P; t7 n6 w$ W) Z" U' Y4 n/ e }
! R) X5 ]6 K/ y% B9 B& S }
! @' Q" j) \' a0 H/ y8 q f! ? return min; E$ Y9 d1 L4 ] k6 D5 j
}
9 X) K& x0 V2 w; `- _- n# S, f) |8 @$ H: F' g, v
//求数组的总和
4 Z: E$ L- w( L9 O7 X public int getSum(int[] arr){
) |' p8 }1 V9 A" x7 \" O& f0 [4 A int sum=0;" ]; X' c b) e( z5 l' x) \) f4 `
for (int i = 0; i <arr.length ; i++) {
6 N( D4 [7 n6 ?, v5 l sum=sum+arr; n3 F$ {# \0 Y7 C1 H0 \
}# q' X; A) K& ~; E0 l4 j& _8 ^: h
return sum;
& J1 ?/ E+ ]( G: b* @( {2 _ }
* a A: j* }) F* ^& W
# U; x1 e e* E4 I5 K! S5 z //求数组的平均值* V" @- J+ |7 i: X# b0 t: Y% B6 K
public double getAvg(int[] arr){7 A2 a7 g4 A! E& n2 q( x
! f0 i7 B0 D7 m3 f4 `
return getSum(arr)/arr.length;//注意返回值的灵活运用
; ~# J3 }; M; I$ a7 I+ v3 e }
+ ~6 _: e3 l6 I: `1 N! `8 X
* W* @7 q* G4 g1 C- Q2 ]8 ` //反转数组1 S& d6 m+ p: K4 h
public void reverse(int[] arr){
, v) j- z3 P& I, c0 ] for (int i = 0; i <arr.length/2; i++) {' I( e4 @- _5 l4 G' I
int temp =arr;
0 D: a9 r, h0 y$ Q; s arr=arr[arr.length-i-1];
" H" n) V3 M, S' X; Q arr[arr.length-i-1]=temp;( k* h8 |$ d3 K8 U
}
* Z) Y8 ~8 m8 T* _3 p }) @; b& n, h# Z1 x% X
5 [( r: q) q3 A! P z" q, `6 |) S& m0 \ //复制数组& |4 _& W) |( h9 x* i
public int[] copy(int[] arr){7 Q7 v/ ~- G" ?* t/ u9 [: D
int[] arr1=new int[arr.length];
0 ^: D1 {2 ^/ s" w+ b for (int i = 0; i <arr.length ; i++) {
8 P; q$ p P2 n) g7 Y arr1=arr;6 v; V# d% k/ y+ g. ^/ E9 t
}3 \% T H7 O# U t0 a4 O) Q! m
return arr1;5 @5 f, c0 ~5 l1 e+ K4 l+ Y! I0 k
}
7 I" v6 \% Y* [! K
. ?9 n2 o6 e* z' E. G2 N- c2 j //数组排序(冒泡)
# o' }1 F% h/ m; E# M, D6 w$ j, Y public void sort(int[] arr){( E: w% S& @# w" f
for (int i = 0; i <arr.length ; i++) {
7 ~9 V' ^/ f; o! z! p) [( w) X for (int j = 0; j <arr.length-1-i ; j++) {' [. x: O8 ^# y4 l; k" N
if (arr[j]>arr[j+1]){
) t+ i1 m! q; B; s. ]- J9 s+ a int temp=arr[j];
. v8 r8 }) w3 L3 a arr[j]=arr[j+1];
; M- a, n1 R+ s( W% ~& X: D arr[j+1]=temp;
( n# T9 e' a t! _1 `; U }, r% b1 E3 @: Z0 X& J
}
J/ j& }. M5 l3 y3 ?6 `$ X# a; i4 n }7 t% x; ^! u3 i" o
}
! x- z9 [: M' ^) S- y1 P+ s" w1 l
% P8 v- s8 z1 g3 C y( X. E- l //遍历数组
6 v* m9 L" W/ }" `; \ public void print(int[] arr){- R7 U6 b2 D& H) e9 m
for (int i = 0; i <arr.length ; i++) {) a4 k# K0 g6 R! d
System.out.print(arr+"\t");/ |+ e P1 A% |0 U
}
' ^1 j" v: D) T: D3 N* F- ? System.out.println();//遍历后换行, m8 I/ [# Z" R U5 f2 a
}
9 p; |; R* P/ R" @( o1 @- ~9 B, h) m, H x6 u
//查找指定元素
8 [% e1 r2 {" y! a/ @+ n public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素)% F$ C+ _% Y3 r1 r2 g( V6 ~
for (int i = 0; i <arr.length ; i++) {
3 s9 ~2 h; o' Z$ a/ e if (arr==dest){) X6 t3 F3 C3 R
return i;% j2 ?! r; \/ d0 Y6 @+ ]' i5 Z% O8 l
}9 t& x& j7 P8 }3 V" Y$ l1 a' z
}
* M" A6 E4 T7 J8 K- y: R return -1;//返回1个负数表示没找到
" C+ d6 I3 p9 v# |; f# S1 d" w$ K$ { }
1 ]; r5 A) j v4 c' s. M2 K}5 x4 h2 S" B; M; G# w0 ~
( d6 T& D- n* u1 k/ [
1# V- {* { `8 O9 y* j& [7 a
2
/ T/ }2 X7 \7 A+ H& W. r. ?+ U W3
, |' W7 Q: B. \; } t4& j$ `) P# g" o$ A/ A$ R
5
. H5 u( @. e2 |7 }4 \3 x5 ]68 v. ?( T; z* N3 L8 H0 D0 E, G" `0 i
7
$ R$ m- M3 I" H; C8! D7 s4 R# K4 U( ]! g
9
, H) ^( p5 j$ ^+ a10
4 Y. ^! V: T: U: j11
/ \2 Q. } w! I9 A' ^, U% @! D12
, U6 R! ]- Y; F l13
8 R: p4 z J( u ~5 |7 D14
1 `) c! q' ]' d' q# L" p* P& q15
0 ~" x( d3 V* L5 J16
' }& ?1 s( q& O$ ]17
5 x4 E& }9 j6 ]0 A8 q6 c18 e) Z% [ N' e- \1 J, o8 u$ F
190 _# V, _5 \. R9 H9 {: L7 M
20$ ], t" e, e. e2 @( |
21* i/ ^' M7 c0 U+ e+ ^; l- q
22
, U: I/ l# } p- X23
" Z( g8 e: y. w$ u3 n4 q241 h6 c a, T4 A
25$ R; ]0 ~& ?2 |- o" g- ~* L2 p
261 R- Y- @( B$ Y$ U P! c
270 u" P9 x( S4 h0 F# R5 R( z
28$ m& |8 I5 m* G
29
$ d) [! y, P/ N30* x8 H, S/ h: V& T
31, t9 l" }& t$ O2 `: U* }
32
8 j: b9 C! c9 S. {33
5 H F0 n3 p9 K- {- b/ j" q34
5 }- }4 Z# K& Q3 a% _35, n& |1 Y) y1 J+ x' D6 _
36+ m8 t* t8 i* p1 B4 D' o$ C
37
! s9 Q2 m ]- l) [/ [- S38
+ q0 n8 G. E2 v/ l" P% Q39
t2 k( b; m& e" b40
6 V+ [; f; o7 b2 h5 V6 X. r41
3 }5 C& k: n2 r2 B4 B1 S" Y428 l! u4 u! P3 @" M4 r+ t
437 x( X* }, R. M& g" @
44
$ Z+ [8 [& P3 [456 ?4 ~$ q9 t( o4 X. F: _
46" L* X3 S. d1 }8 |, a/ q) p! Y
474 [9 v& E- E3 E0 {* }
48
5 y6 K0 v$ W0 A5 l6 I' E# ]5 `49: F4 m& U5 {0 U+ U. t1 }
50
/ j+ T8 Y* p7 [! x- h51
4 W0 G* ]- \2 T+ R) ?52
- x" h, r* x. V53
# B8 j( ^$ d, b1 x9 I4 g' U( I+ g54- H3 B. r3 x8 z& I+ A6 h
55
+ Q# S# F. h' |+ _. A/ E56
' H# F( e! w, Y8 o F- Y: A57
* }6 J! _: ]5 J6 W1 O- a58
; P, @' W& w E* E; ~" Q591 S& i6 |" r Y: ?3 w# G3 q7 r
602 _* l2 W9 ~/ G) W! k
61
" P- ?! r2 U5 X62( T* F7 `, Z2 J
639 e, P& ?' J0 z/ o$ Z, P
646 o- ?4 v& b2 Q' E0 ?/ A" j% Q
65
l& T' ?; W. X! ^. k66- w5 n+ y: b1 R0 |: U3 \
67
1 L: _, {' ~* p$ L: j a: q68
$ g* h5 G1 D% W8 u3 ?69* J' }3 H( t) E
70/ c4 d: E5 y4 U1 Y! S8 k# X
710 A. L" ` N L4 V
72" Z$ l6 t+ _$ E) I) m
73
& d5 s4 H; N/ E9 q745 p! Y7 r- f+ j1 G, v x
75' |/ y: l, F- |, J5 Y
76; z* x/ m) A! h5 S5 C; G
77
0 R2 W5 c1 l- c L78
. q" R- k U% Q, ]) r! E798 T4 o# Z$ J% @( g4 V
80- A9 m4 U3 H! e! N* v v1 P
81
/ I" v4 g" {) T" c- j3 J82" q( h5 ~& X" \5 T, c$ r0 w) O
83
& }2 j3 T6 d4 R6 \7 U7 u84
) U5 Y6 g/ V4 [2 L8 b855 e0 v$ F- F: B' D& Q8 F
864 Z( _- s4 a) |5 b- Z# D* E
87+ S( l3 D T/ G/ N5 c. ~: K
88% V _: G; ]& x: ]
89# v/ F* z; q1 u: M- I0 \3 v: [6 F" g
90* _0 F4 y& O2 I# ^4 z, b. q3 [! ?1 `
第二步:在BCeShi.java中测试
8 G6 w/ _3 t, p% Q3 X# Xps:这里两个都在一个包中,如果不在一个包就要导包
9 d, o/ m3 n7 A$ \ k7 Y9 @
K$ U+ k( \" [& T9 t5 ?package dierjieduan;& C1 ]. E% k" q: F+ M) c, J
public class BCeShi {
/ I; _) Z5 [1 ^ public static void main(String[] args) {
& h" w' ?4 n- y/ W3 \9 j B p = new B();//建一个B的对象! a$ N) H6 H T5 Y0 l4 f
int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组( f& M; |& E+ d2 F( j; J
//求最值、总和、平均值
J) z7 Q3 Y9 W( J8 P int max=p.getMax(arr);//最大值
0 l* R3 B% _( o5 i/ b' y" h) B int min=p.getMin(arr);//最小值0 d+ }3 M7 K3 j) c; N* R2 ?
int sum=p.getSum(arr);//总和* o5 S8 L I7 ^
double avg=p.getAvg(arr);//平均数8 A" ]1 o+ R% |" _+ h) x3 Q3 {1 ]7 m% ]
System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出; a' G. n9 h* U- s
p.print(arr);//反转前遍历(第一行)
: c. k$ N" D' E! w1 q$ [ p.reverse(arr);//反转数组
8 Z! ?3 B( T+ q8 ~ p.print(arr);//反转后遍历(第二行)6 \& U. o1 y9 N" X7 p6 G
int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr6 G; i( {1 {3 t9 _
p.print(copyarr);//遍历copyarr(第三行)
* z6 M9 _; e7 t) f5 c# F5 Z8 q p.print(arr);//排序前遍历(第四行)6 [0 q1 [/ h+ s) d7 [! Z
p.sort(arr);//排序(冒泡)
: P. y8 x% x" F8 G p.print(arr);//排序后遍历(第五行)
% Y w2 [) L8 m1 | System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组)) S2 j5 l% s) p" s
int index= p.getIndex(arr,34);5 N& D" t3 U& [! b. [& |: E
if (index>=0){
& u! N- s4 [$ ^! n/ u2 w System.out.println("找到了,在位置:"+index);" e# D: ^6 N4 g- Z; S+ ?5 P
}else {
; k0 P8 Y1 `, L' r$ D+ z: W System.out.println("没有找到");
$ m2 X2 V3 C$ X9 g }5 w* q/ u+ U$ ^, e6 Q( q
}; r/ K2 Z( J. P+ j: [7 {9 l
}) e/ H9 p+ O' B' G
1 \, a6 z n# S& V4 i$ f7 S
1; m; _, _# X+ U4 @2 a8 G% R
2
7 k) v* G" R6 S3
/ K; S5 j% d; ^. G7 \0 X+ [- G47 e4 M& n$ P+ k& ?2 Z
5
: e" |, n# [0 ?$ O: m4 ~6
^( }; p" p( M' T4 v5 s+ ?8 j, o6 U76 {. f0 g+ T+ i& L
8) r7 e {: W0 \' ?, _0 d( L& K
9
& b( W! E' B- j g10
5 j- u, X9 |7 D4 n- P# l- K3 h/ e, h g11
! l# z0 r- x& w5 X2 A6 a8 `. Q ?12
- l* ^, V) q0 ]' c' u13
" D0 t# W& U- Z7 z14
5 v) d: b* s+ ~+ V( O ?$ a15
/ B$ w& M7 w. g! H# M) V6 v: L; y: v* @; s16' \( E) u* j5 y# ?
17% m( e$ M9 o( N6 p) F) p
18
# w* B1 L: j# Z$ i/ D V( S2 S, y19$ |7 C* t9 b0 e" j0 V7 n0 u) u
20
) O* U( `' t; k' w21
/ ]( v" Q2 y4 z: E22
# {4 y- b6 a6 S/ {* b% q23
4 j, d1 w+ O9 l8 B, S+ x244 a2 T$ _0 ~0 a: X, D ~, F+ I O5 }7 s" |
253 `/ ]2 z, ^2 J) E
26
: w2 p# v/ m* g4 C, A5 j27
0 T+ s5 z' d, G28) x' K% n2 k0 ?. W9 o# }
运行结果(对应上面main方法中的代码注释来看): X3 M: y; N! N! b- w, W ^( c: X
. c/ r& j8 c6 t- H6 g* P. G2 T! F2 i
————————————————
- `+ x) r, j( C$ U, _版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。8 ?) d' {8 o( t
原文链接:https://blog.csdn.net/weixin_45869823/article/details/1267547971 w9 }' M: m! Z7 m7 B
3 j& x4 Z0 D5 p& O+ n4 K
( w: }# a L, e, Y2 a: E) {4 o |
zan
|