在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 569153 点 威望 12 点 阅读权限 255 积分 175969 相册 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-自定义数组的工具类 3 S7 g, `% n+ S6 Z, i: q1 Y
+ ^* V- Q' r8 O8 ^ java-自定义数组的工具类8 M, e9 K- q- `% ~ B9 `* H, G
& k% K% _! E: a, L2 F7 L2 r, \ 文章目录
; L% f8 N! Y) J java-自定义数组的工具类, y8 f M& `) [7 b. g; w; ^$ n' Q
第一步:封装方法到B.java# l3 a7 g+ q# E, b7 p
第二步:在BCeShi.java中测试
+ U; w0 D/ @0 u: N9 g4 | 运行结果(对应上面main方法中的代码注释来看):4 B9 ~ x7 X9 O! z9 P0 K8 D9 \, D
java-自定义数组的工具类
; E2 f! y2 B, B Java—数组中涉及的常见算法有写到' E! Z6 {$ u* B$ k/ d7 ~
7 g3 L4 T: A+ K( ]/ j% J 求数值型数组中元素的最大值、最小值、平均数、总和等) a" D( i3 w4 r$ b% [% g
数组的复制、反转、查找(线性查找、二分法查找)等等
O( d3 x( D/ J9 |% j1 `8 w 数组元素的排序算法等等$ X- B- A I& Z
这样的功能都可以封装到一个个方法当中2 N8 o. ^, E/ | d. U
$ `7 R" h/ _" g! `& L
ps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起 `9 n: J+ i( X! }! `1 r3 K
# u- n! M, r% Z4 f 第一步:封装方法到B.java5 F, O! M! z) u3 [
package dierjieduan;1 h3 C5 H# _$ Z
//自定义数组的工具类/ V1 k. b# [' j, ]6 k( k
public class B {
# \ m* q2 b, W1 ^5 e5 q( _% ~
W7 l% @; X1 B5 f. H //求数组的最大值. N1 {# ?/ L. b- o E7 w- \+ O
public int getMax(int[] arr){
! l# I5 }3 r/ J int max=arr[0];5 v. A P q0 _4 Y, P( i6 V3 z
for (int i = 0; i <arr.length ; i++) {' [/ J( ]2 s& i0 b3 [9 C
if (arr>max){8 c! ]* H0 a$ R* I$ ?
max=arr;+ D2 v5 ^2 U) e1 g" ?/ a K
}/ K0 g) }/ b) E8 A. }' `
}
! w: j( U3 L7 C9 u" w2 I- F return max;- j1 ~; f. O& x, p
}
; A$ Q( h+ K3 w! T0 X+ i ( }" S4 T* @% I6 s
//求数组的最小值/ g! |, |+ V, @0 v" w
public int getMin(int[] arr){3 d! [0 R( f" e0 {7 h' u
int min=arr[0];, ?* r _* J7 n! w- N" M9 G
for (int i = 0; i <arr.length ; i++) {5 i1 v. ]+ g8 h# g0 o" }3 [1 y
if (arr<min){0 C2 c. q0 t" {" l" ~% U
min=arr;/ n& W+ P* e5 v2 ^( Q5 r! f
}
3 q: i4 ?$ ~$ P) Z; f }
+ H8 g7 l& H }5 O# Q$ d return min;
4 R8 C0 o' _! H- i% N, ` }& I( c" X5 l! R) I; w C* u
* i! t. D+ h+ t |/ X4 K7 _# a //求数组的总和
; c& x# n1 U5 ?* @ ? public int getSum(int[] arr){; }& K( M* A# |
int sum=0;
+ P* }& [; l$ d U% ]+ O for (int i = 0; i <arr.length ; i++) {0 |: n' U3 |& S9 X; ^2 l _; U7 z
sum=sum+arr;" C/ m: G T. f1 f/ a2 r% h' r5 B
}
/ ?/ {$ v1 k/ ^; Z return sum;
, f1 [' _4 _) o& {2 b: w }
9 |/ E0 A. p$ ?3 M, e
0 d8 V% n+ ^+ X //求数组的平均值
( N4 j1 Z$ l) g. t1 D public double getAvg(int[] arr){( i# v4 B5 R; s/ { w7 F
7 g- a$ m% K" y return getSum(arr)/arr.length;//注意返回值的灵活运用' \- A! B4 x9 ~2 c4 i
}4 X6 p5 ?7 _( J6 `
! T+ z' N: @& H% e! y //反转数组
$ Q1 t, `% T6 m# b7 Q7 `3 [ public void reverse(int[] arr){2 v* Q9 k9 W4 W0 f$ ^
for (int i = 0; i <arr.length/2; i++) {6 X- i) O- j2 q7 R
int temp =arr;- H0 y5 Q- s n8 B3 `4 a- R
arr=arr[arr.length-i-1];
* W- F( N4 m1 p3 S& w# S- b2 _6 c arr[arr.length-i-1]=temp;' H& ^2 q3 q* j
}: k% N- v0 p% M& S8 R; j" ^' g
}
: d5 e6 z; h. g% ?/ Z8 ~6 p' i9 { / z' u: k) {& h3 M1 |4 N: O" u
//复制数组" a9 U6 o0 H. ?: g, a9 G1 u i
public int[] copy(int[] arr){4 \9 D) ^/ \8 o2 P: k
int[] arr1=new int[arr.length]; q0 t" K* I7 |. q# g& J
for (int i = 0; i <arr.length ; i++) {# F! o7 Y0 N1 d& V
arr1=arr;
. U) O. b( w4 k2 H! N, Z3 T9 h }* f4 }. ]6 @0 h
return arr1;; M9 a! O: G$ F T" W/ z- P
}
& U: o! G8 g# j3 i3 c- p/ U 9 Q6 r1 f2 G0 O+ _ }- j
//数组排序(冒泡)
+ p* I9 `: _% K8 D7 x0 S) x) [; e public void sort(int[] arr){
4 t5 b/ z# ?5 \- m. F for (int i = 0; i <arr.length ; i++) {
( E- L" W3 N7 X1 F% Q4 ~ for (int j = 0; j <arr.length-1-i ; j++) {: C d% c9 [ m( m7 g, R
if (arr[j]>arr[j+1]){9 s% I( i/ i- d- ]; D+ k
int temp=arr[j];* D5 _% L+ m2 z+ ?+ }' n5 J" n
arr[j]=arr[j+1];
$ S7 C3 ]$ ?: ?$ v N2 Y arr[j+1]=temp;
6 T1 Z8 T* P. ^% y9 l }
5 \3 e, N% g9 k6 Q9 r- O }
8 l" s R! Y; o L! N" _ }
$ B- R9 W% t& H0 x l) N/ J }1 N' S+ [0 e4 o# I, T) F/ ?
A" o# @+ k9 u; E7 c% X- { //遍历数组4 r' m1 R$ ^. @
public void print(int[] arr){# D* G8 J' L4 y9 I3 f) B
for (int i = 0; i <arr.length ; i++) { h5 I' a: D. R2 S# t: m7 C
System.out.print(arr+"\t");
# }6 i& m. v. ]# N, m) i) ~/ l }) H/ V I ]# l2 u# m k1 t, p1 Y
System.out.println();//遍历后换行
( j- g* c9 w6 W* ?; ] }
0 `0 h( d3 C5 m4 j6 i: `' F
2 a. x- d3 g: ^) y- c //查找指定元素
1 x) Z" U/ X L* x7 p7 c" P public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素)
8 N/ G2 i2 L( O for (int i = 0; i <arr.length ; i++) {3 J4 }+ j- r$ \, h9 s A
if (arr==dest){$ `! p G! J; Q9 z
return i;) X4 n% r/ \3 g) z
}
7 ?5 M8 ~6 C5 _& r$ D }
2 p, W$ K+ D g3 B' S5 U( \! @ return -1;//返回1个负数表示没找到: t$ r' I! j: A/ q6 J6 y! B
}
B9 N! }0 k8 Y( e% Y1 p o$ d }
: \% N* ?0 [! @: v& K / j2 c' J7 {1 Y4 c% v
1
+ z2 K/ V; v2 l& ~+ x7 M# b 2
1 X0 ], @4 _: @& V1 d& F2 K2 O 31 b8 U* j, l2 A5 J, _6 h) E2 w
4! G* u/ G, N6 e- x- [
5
/ M9 K5 m) M" a& G. |. l' y: m5 f 6
& e6 c! v Q$ ?6 z8 ~9 x7 } 7
& r- O$ D" [, H( c7 [/ f 8
. y' f( D J; @ 9 e6 S" s' j; l& W7 ]
10% |' h+ \ e; Z
119 e9 p; K( E; C4 t: n' R& p
126 q2 a, X2 \$ V# E1 z
13
8 N) T. z; F$ z- c, i. o 14- [4 f) R5 [5 H- ?) O! {
15& u% {; e& N. O9 F+ `. k u
165 k' s9 f- U8 G' `
17
1 r* B8 Z3 p& Q8 u2 t1 g5 D. L( F 18& n# I, I7 b7 Z l3 [9 u4 w! g9 m
19! l i& }) z( ?) W7 ?
208 a6 Q1 z: @5 M8 p7 J
212 [/ l! U; n0 H
22' A A! ]( U, \% C. J
236 p4 B5 h) f# t9 _7 @6 I0 b
241 d8 k6 P' n) M9 M, r
25+ C" v1 h; I7 D# k( ^: G$ |; i
263 G5 V% @1 Y8 }- {4 n& r
27! }: p+ j. l* ~% n+ B
284 c0 u8 w1 B! m
29
4 I" O1 B! _0 r! }" g ^, | 30; B1 r" N/ n; n5 @0 ?7 b+ J! q
31
. H3 x' z: ^* M 32 x' Q; _- a& Q1 `0 h" k
33
9 O6 c/ ]" Z$ }! b 34: S. [# q7 Y' c. z
352 K5 X4 V) G. {1 K7 V
36% e. V3 b+ c! p. L4 G8 ^2 x
37
% _( h+ U, p$ g 38
r# S( M& Z1 V# T* w6 i. q 39
" F/ a3 H' d ~9 G" Y6 a# {+ w 40; v @; ~) e0 i+ f2 W) q8 b
41# Y7 l* D8 a! x9 A! i+ B1 e
422 B1 O( C) o" O& g$ { X
43) [& s# z. v6 k: `% U
44
% ?0 }% A' z2 T; ?4 l& m1 q 45
) V! w5 ]! y: T; q: W8 | 465 o& V. ^6 }) b9 s" J1 x
472 D5 ]0 g$ @8 T" A, r! o
489 K2 [. O. g* W) m
49% ]: |# R7 y, Y
508 S# D; u( W# M6 }5 P7 Z4 _! L& E( L: c
51
9 T% N. \& I! W% N 52) J' Y6 p4 W9 m6 k) m
53
4 s2 j, F% ], q+ z f A" H; a7 H 544 Z7 x% l" G0 m! j; T
55
3 o, ?. T7 ?7 n* } 56
6 Q% P# E9 N7 g( s' ^ 57
4 Q% K& p8 v" |7 C% H: T 582 [( z) R- _% t& I0 s7 [8 x) ]
59
& ~, y1 O; S' `( I7 F 60- l3 Q& Z) Y0 P, M( Q
61
9 X' @ \# T3 k' v; R& @: v 62
' q8 x r7 ~* ~& T. q 63" o& @' c/ A# ~7 |6 l8 H" d
64" A5 Z: J' H1 U1 v" x4 |9 d
656 x H3 F2 ?9 M8 d8 y7 L- ]; ~
66
. b# i9 U) B( [+ J 67 S1 T% ]* R* z7 d' t
688 S8 k* v8 o$ d2 O) {
69
P2 c. k% S) ]# h. G6 D+ m8 [ 702 g! E# `: `. X) {2 W
71: J$ N; G- v# `8 y1 q' I+ M, i7 R
723 p! f/ {1 d1 G, X @4 z/ a+ _/ l
73
; O) [, S# d& M- k 74
+ k r& h. ]: O' B0 v+ L& E' C 757 O5 O; ?0 k- c
76
" J+ w& j6 M/ i) C 77
/ z* d( N7 [. U 78
# L/ n$ ~# b5 A8 i8 R7 K3 I 796 `' A! ~8 e) c. k/ V/ U% A( H; h1 g
80
6 C0 b1 L, }% V0 {) O 81
) M p5 ?# A- y# T2 A* G% @% ^/ G# d 82
6 G; {* {( R7 [$ q. l( [' k, f" D 83
; I( G& D& Y& L, l/ I 84. v P3 U! n, ^- p" u B: C; R
85" c8 J* T/ ]# P+ d
86
) J) Y1 {1 b% {( I$ O0 A" a5 |7 u 87& u, y3 M# ~9 a: W( m) R; m
88/ s$ L9 E) t3 K6 _& N! N
89
2 O! G/ x y: A; U9 M 90
, ^* T" W( g% j2 M) e- ^) j: H 第二步:在BCeShi.java中测试
" a9 i3 T1 j; V" j3 L b ps:这里两个都在一个包中,如果不在一个包就要导包
- j6 _" X/ V( _; L
8 L; U m; X) P6 w$ i package dierjieduan;9 h( y' Q" l# z, z. {
public class BCeShi {8 g% M3 Z3 l& w0 d# N
public static void main(String[] args) {- f4 _ b( D3 Y3 @/ R6 O/ w
B p = new B();//建一个B的对象
" X' ]6 m* k& e" q2 l int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组9 W4 P' c- I$ v/ a. S) O( F
//求最值、总和、平均值- x: n8 u% m/ l
int max=p.getMax(arr);//最大值
$ N1 L, |9 M/ P; [) r! w& A/ p+ N4 k int min=p.getMin(arr);//最小值9 V: b! S# \" M, L' w- @$ L+ n4 |
int sum=p.getSum(arr);//总和
) S, V$ ^* b" H" _, f5 y1 j4 @ double avg=p.getAvg(arr);//平均数
/ W' c* T; G* Z0 n; } System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出* e% U& V; M4 W, y; `3 w! J
p.print(arr);//反转前遍历(第一行) @4 N5 W1 r; o! Q x
p.reverse(arr);//反转数组
4 Q; j! w, @2 B5 a8 W, X p.print(arr);//反转后遍历(第二行)# `" Z" z' O3 S
int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr
8 y, c/ d- e% w p.print(copyarr);//遍历copyarr(第三行)8 f0 F7 f9 l$ b
p.print(arr);//排序前遍历(第四行)! X+ d# K9 r I6 ]; b$ r+ w
p.sort(arr);//排序(冒泡)2 J6 e9 K3 E1 c$ B- S
p.print(arr);//排序后遍历(第五行)
8 f M/ B5 h/ T* a7 T% n" g7 P; N System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组)
1 i# ~( a% y" @6 D* } int index= p.getIndex(arr,34);
) n9 {6 R* e" M; X) p6 i5 z) A1 }5 u if (index>=0){
/ V4 C8 a* b4 f1 ?7 X2 x, _ System.out.println("找到了,在位置:"+index);
4 D7 c" Q; v3 h3 P3 @& `/ a: T. T }else {
" q1 k8 k! D9 @- X System.out.println("没有找到");) C) O5 w3 B! R# v' `6 u
}' z- n" q6 ^# |+ z4 I! @8 S' `9 Z$ m
}
$ ?, U3 L6 r8 @/ Q- h }
* j$ {& h4 h" ]# o( d/ M# S- E - T' \9 s* y3 S2 ^
1
. D3 ^5 j, I& L5 T9 m, \! b. T 2/ {; p8 T d" n5 D3 m
3& K) \3 C! J- k% b3 [6 y
4& M! `) v6 Y* f- K. F
5
7 e3 D' @6 w! _& J 6/ _+ g2 [, C: g
7- k3 \, G4 h1 L! ~
8
2 m1 J! h8 e# B' r 99 W' g0 ~3 o5 Z$ W* e5 _: m
10
( S3 ~) Z4 w% u( B. Y0 I0 l# X4 T! ~ 11: A8 R9 r- A( ?/ {* m. a! I
12
# g3 J* l' r# p! u4 X1 L 13
& r2 t; C2 ?, P 14# N. Q9 h1 Z, W) S& w+ }( y0 ?
15! m0 j2 ]: j% q, ^
16+ R; {/ C% x+ ^. H7 R
173 ]! _" U+ k. Z
18& D9 z- i- b ]/ {+ P% Q; C
19
% U1 r3 D/ i' U7 K( g# C/ V 20
% ^. o H5 r/ Q, { 21, F8 E n6 F9 Y6 s$ r7 e1 x: g$ F% v
222 {) L# ]) ]( f: }1 a' f
237 v0 X, D; L2 D0 q1 _
240 Q7 S/ J* ?$ b6 R7 `' c9 |$ `6 x! t
257 Q2 r7 \$ r" S$ r9 @
26
. W0 F/ b% T3 b0 ~# V7 ^ 27
! { R0 N2 m$ u- \# j& l q 28
, `/ P7 N( x4 o 运行结果(对应上面main方法中的代码注释来看):. l7 r$ \* K h5 {6 n; D
/ Z5 W1 F! @) z5 V
———————————————— Y9 |8 g, X& B; R3 W$ M
版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
g) w3 U; D) @' s* B$ K8 P8 m. g 原文链接:https://blog.csdn.net/weixin_45869823/article/details/126754797
) B) Q* Y8 E5 z* x- ^9 u
2 O3 V4 X. Q; b
) f6 u+ V8 O( F9 H; P
zan