QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2007|回复: 1
打印 上一主题 下一主题

java-自定义数组的工具类

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-8 09:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    java-jajava-自定义数组的工具类va-自定义数组的工具类自定义数组jjava-自定义数组的工具类ava-自定义数组的工具类4 K$ j. X9 i, \2 u

    , V3 s6 A* C! Q: q+ c+ Ujava-自定义数组的工具类  W+ C6 D  N; P2 f' J* B! F" \

    8 p) Q& o  s/ }+ F% E3 D文章目录+ y* u* u. [- t9 @: ?+ q
    java-自定义数组的工具类
    : P6 s3 T  a! @! T# d/ a# A第一步:封装方法到B.java
    1 y6 H% }( ]5 C# I0 Q  Z第二步:在BCeShi.java中测试( E4 p* r, _5 g1 G. V
    运行结果(对应上面main方法中的代码注释来看):
    8 }2 H/ a. E) Ujava-自定义数组的工具类
    ) S  K" c" Q& u* cJava—数组中涉及的常见算法有写到$ h  \& u! F# h: `" d! m  u$ u5 `

    6 N7 A: {# z# f. r求数值型数组中元素的最大值、最小值、平均数、总和等5 `7 ^( Y- A1 V: _
    数组的复制、反转、查找(线性查找、二分法查找)等等
    ) R9 f2 n* d, ~2 U( v) d数组元素的排序算法等等$ O! `6 z- v5 D' a9 ]% ^
    这样的功能都可以封装到一个个方法当中
    4 U  t* f7 T0 l$ b) d) h! s4 t2 q0 G9 ~  O; s( E* b% L
    ps:这里和Java—数组中涉及的常见算法相比也相当于把之前分开写的比较冗杂的数组涉及的常用算法归类总结到了一起
    1 _  C* G7 {' P9 R: o( Y3 F! {- o
    第一步:封装方法到B.java
    4 c9 s$ b" _: |5 t+ npackage dierjieduan;
    / O8 l* f$ i3 v9 M; U' N; `5 h* G//自定义数组的工具类
    0 w" v: P% j9 {! epublic class B {% ]) Z9 f- Q* R1 q( `

    + q$ l* R: x; T    //求数组的最大值
    0 `1 o2 y( @" \& ?. Y    public int getMax(int[] arr){% w  E& g+ {( u" A; O0 f4 i- I
            int max=arr[0];
    # r9 L" R2 K+ h3 ?        for (int i = 0; i <arr.length ; i++) {& g' {2 _' O- h2 f7 S2 f
                if (arr>max){% i: I: b* M* O4 j
                    max=arr;$ h) Y6 M: [( [, x5 S1 |8 m
                }
    $ H# ~/ X3 P8 U0 [* Z2 g+ b        }5 O( l) B4 ~+ S$ b* {' g+ T  k: X
            return max;7 O, I, @: t4 n3 F& I
        }9 i3 O+ J9 T5 w8 i' P- S) d

    9 c. F2 b1 e* Y* A6 h    //求数组的最小值3 @& X  P5 Z# }& }( Z9 f: k; e
        public int getMin(int[] arr){
    , R- a; l0 N' U) ?; z8 s        int min=arr[0];
    * ~: Y2 j- b- W" B        for (int i = 0; i <arr.length ; i++) {6 K& `5 J6 k1 F9 V
                if (arr<min){
      I0 x% N6 Q2 F2 y( ?                min=arr;
    ) E; y! I5 c% z/ k) e; y) b            }! F" W  w/ e; }- H/ h/ @
            }% v4 O6 V% A" Y& o: e0 x# H
            return min;! Q, \2 G/ Q/ h$ l1 \
        }
    " Q+ k, Q! c# ~4 P" R- A' K4 g2 F, z2 x+ H
        //求数组的总和5 p$ v1 d4 m% H8 J
        public int getSum(int[] arr){" n0 _& ]# f/ b* n+ y9 z+ m: y
            int sum=0;5 m9 h" m( w; ~
            for (int i = 0; i <arr.length ; i++) {9 r; z( M) K4 e3 ~- z" x8 A5 b: }
                sum=sum+arr;
    / @3 s) {/ `% V2 P) U0 a& ?        }
    7 q& C, b* G+ h. A/ A        return sum;6 W' m5 R# W' D3 [( c6 @
        }
    # L5 i& _. O# s" M  V) D
    / i! R  n) j. E* B* e# x3 L    //求数组的平均值
      a4 r$ F" }' R0 b6 S( m    public double getAvg(int[] arr){4 F2 {+ o: \* M8 r# X

    # A0 s# u/ B8 `        return getSum(arr)/arr.length;//注意返回值的灵活运用
    / ]2 P% k+ M4 m    }2 J/ `- a: V" W! h( u  |
    * v+ T" K8 J/ Y% G( ?, d
        //反转数组+ \1 `0 J: n& Y$ ]& h% s1 [% G
        public void reverse(int[] arr){
    ! d+ ?/ x2 w) |        for (int i = 0; i <arr.length/2; i++) {
    7 z, @0 @3 j7 T. ^) Q8 N            int temp =arr;" T( P1 P: |$ F' X( z
                arr=arr[arr.length-i-1];
    7 ?  T1 ]3 ~2 Y; S; y: e9 W- y& e            arr[arr.length-i-1]=temp;
    ' q" c8 m% F3 ^( t  X        }( L* w! v  H1 b5 h& M
        }$ i% u3 [" w( n$ @8 s

    $ {  b7 c  [" F7 A0 ^    //复制数组& ~( _, ~5 Q2 M' _0 o% o
        public int[] copy(int[] arr){& r. r5 W7 f8 y7 T* ]1 _  n+ f0 R
            int[] arr1=new int[arr.length];
    " D! G) r4 W" S9 |$ i8 U+ {        for (int i = 0; i <arr.length ; i++) {
    1 x# ^5 ^+ j9 ]            arr1=arr;# X# q! C( J. g/ I& P5 X9 c3 S' W
            }9 L* N9 n; ?6 |& k  N! D
            return arr1;  Z6 y% I( x, \# q! R$ L
        }
    ( k' U3 u- C* x8 C# [3 E. Q  I- t+ B9 X4 T  o# F
        //数组排序(冒泡)# I' s! K- w( N7 j7 f5 N
        public void sort(int[] arr){/ y; C: A% `8 n$ Q* h( j
            for (int i = 0; i <arr.length ; i++) {
    8 n4 i  _: j! R            for (int j = 0; j <arr.length-1-i ; j++) {
    ) U) c, {1 q: m6 A- ~                if (arr[j]>arr[j+1]){
    ) x6 V! D6 E1 v$ k                    int temp=arr[j];
    7 j5 e( Y' ~9 ~0 g+ Y                    arr[j]=arr[j+1];0 C3 @' P0 W/ \; r+ ^
                        arr[j+1]=temp;4 E) [" a7 d" f& t0 g: M
                    }
    - u0 Y  p! C9 p1 t6 s* s            }# u7 ~1 ~& o7 n4 u4 c& \$ y
            }- i* G# X9 l" Q& [4 P  I# Q
        }* E8 h" ~. U0 w- e0 m) }# F
    3 V: u! D$ c0 t5 _$ V
        //遍历数组6 Y4 R2 S8 F4 M; {6 T- g2 w
        public void print(int[] arr){
    ' G6 D, R! C. ^' M        for (int i = 0; i <arr.length ; i++) {
    # u- I0 M) N, [: f- y$ m+ K            System.out.print(arr+"\t");6 ~! c! r! Q5 p* n' e
            }
    ) }  _4 d/ P6 w0 j# s        System.out.println();//遍历后换行
    6 f" d' t; X& x    }9 J! W( y* [! |* w

    : ^$ P2 ?3 U+ Z* j; D' S$ A! `! o$ G    //查找指定元素
    " `$ z) U0 a$ W! ~' I1 t    public int getIndex(int[] arr,int dest){//两个参数(某个数组找某个元素)" W, Z% N  F  u2 ?. E) H1 M# ]
            for (int i = 0; i <arr.length ; i++) {
    ! O0 ^9 Y9 x& r# d% y3 ~            if (arr==dest){. ^, ^% y% D0 x0 _& O# A
                    return i;! {% p. `! _4 O& W
                }
    ! S. r. d9 e4 n: J& O. w+ I- ~        }0 t3 c( F3 T2 c2 ^% B( d! k
            return -1;//返回1个负数表示没找到; z& p( }& }/ b: {, P( k1 x1 {) q3 w  E
        }
    9 E5 a4 V* Z! ?}
    ( C$ E# ]8 P5 ^; i' G2 [5 m8 _
    " Y/ d5 G. [+ G4 E* T8 M1! d! ]( |4 F9 y* b7 p+ j  I% v
    2# l) e3 G) N7 \# v/ q- P) b9 O
    35 T/ T  _$ O. M$ e- g5 R
    4
    4 h* |$ I* V4 g$ W! k5& h/ N# s; x& I
    6
    % d% C' s* K& L- J; P) d7
    6 S/ F4 k& ~1 F# t% i82 Y# k$ Z* b1 w5 H% `4 ?" n& P# P
    9; B- J! Y- r9 b7 r1 S& b, }
    10$ d$ C. Q, |, t. A# R, I
    11
    " n9 J( w! E9 F5 z$ |& ^. Y129 n! T6 C9 j( M+ v4 e4 z0 o8 f
    13$ C' g% H5 m3 e2 y
    14
    + ~2 g8 t9 F# X- ?* D2 R- k15
    % G5 b: E: e0 M5 w4 r/ |16
    * o2 N. M: E& V# K# c7 N17
    . r+ D3 ?) r0 a4 r3 [18
    $ a% w4 u. w3 I" S. S6 D. D$ z# j19
    9 ^% i' e" J. s/ S8 P. z200 p5 D" a8 g3 r: @  J5 I
    21
    # [9 }& u, ]9 N. C9 G2 O220 l. J+ c6 l2 u# x9 \
    23
    ( G& V4 b# Y& v5 _# V2 {240 j& M! o  Q" R
    25
    6 H/ @, o! k! Y. v# F5 r+ P1 Y26
    1 L, S' a$ X& F7 s27, ]7 X- v- F' U8 Q8 [; l1 t; D, m( a
    28
      g, \7 s; s" w296 D0 A, s* A; u
    30
    0 M2 H: k7 A* z* {1 ~31
    5 b: a5 w' K' g" l; Y/ \1 }7 `32
    % _$ \. ?# K! H* t33  v+ `& h( L4 U4 a
    34
    + G, a- B& L+ T0 {359 n6 Z# n1 P9 v9 f% D' r/ d8 x, J
    36
      T) d1 |$ z  T! j% z37
    2 a  m) ^3 c( o% o38& `! n# \& l' N* z! A
    399 B9 {) W4 _- }, h/ S  J9 t
    40
    8 [/ l8 d9 [( N3 y4 `416 e! p" b, ]) a& {  }% C
    42- S5 `" t( L3 u5 P
    43
    % {/ d# Y/ L/ T8 H/ o  g% H" D44+ B1 @+ U4 @. ]4 n( H( Y0 P
    45
    ( V8 U. S5 b0 c+ c! ^6 x) _46  J0 i2 S, w0 v% W8 f
    47
    ) o9 L! I. {1 z; A; _4 C48
    ( e! e- F1 D' l( P* C. j; Q496 T& L  S( s# G5 l/ G$ S9 c
    500 s$ r8 O5 A4 c) R
    51: h1 h4 Y7 ~$ J1 K6 K' j
    52* d! p$ x2 Q  G$ I' ]; @% t8 \
    533 O7 o: @4 Y  l8 t9 k9 o) L4 t
    54
    9 ?$ d  Y4 l1 g, S55$ `7 m1 O, g) _/ Z$ S) G! ?( j
    56$ j& K2 T1 X0 A; ^3 R/ d
    570 r! H' l7 n) V  u& W5 O' P
    58
      Y6 i7 L/ s" K59
    ( O& }. N* P4 Q) @# G" P60+ W; t+ o" _7 l2 q0 Z: g0 M  x
    61
    $ r) S/ b$ l; }& _62
    : A! {* @+ Z/ m" K/ ^5 }5 K0 I63
    ; t8 n1 k0 Q& l6 g9 K64% p7 \9 b' X1 f  `) V& u. c( D* A
    652 E! n" d* C* s
    66
    # ?1 ~. H( q$ R7 G67) j5 `$ C) d* G
    689 u/ ^# u# M% S3 M9 b$ T/ q2 U
    69, y% u, U) {7 m
    70
    % h* d, e8 C/ y3 J! H716 `$ z0 l) f/ j; O  C
    72
    & J. o2 w+ l# q+ G4 c; @+ N$ u737 J- M$ W; @. _$ y8 C5 `" A
    74
    / J. l( {% k% A& W; j5 M& B75
    % Q& D/ e% b: y) N0 {8 M/ M" e76
    5 m0 b" z% t: i. d4 R" v% a77
    % F2 e9 G/ f3 ]7 ?3 g3 x* [; U3 i788 u5 I8 F. r" B: {( ?
    79
    & }: G! C( x( B; R  u8 l% A80% e' V) y. _& c5 i( m4 o
    81
      \) w3 M1 v* y$ x825 A# X) W: o; W+ m+ @0 ]5 w& I
    83
    8 M2 m4 }  B% B. x# j7 ]84- [" Z7 u" R# b9 F; U, ]
    85
    7 H  z' A0 _/ @9 v5 x( k' p) {# c; @* T86$ j0 b5 ]" x, [, ?
    87$ G8 C! V2 f5 b9 F7 s8 m
    88$ i9 p' J/ J$ t/ T" W
    89, y, _7 g" P* N2 }/ r- P
    90
    $ ~7 l. E3 B4 y. x! J6 \, }第二步:在BCeShi.java中测试
    ' }# Z6 D7 x2 V: i  L9 P7 o( n: Pps:这里两个都在一个包中,如果不在一个包就要导包- j/ S! P3 D! e$ P8 T

    + v$ f: c; ?3 c2 N, \package dierjieduan;
    6 ?& i8 c) P; i! Y; z- }public class BCeShi {$ R8 K9 G* d. ~* @8 k
        public static void main(String[] args) {2 R+ m, v5 U) x; f+ ~5 j5 @; k$ |1 a& c
            B p = new B();//建一个B的对象
    & T5 c; O+ `2 s5 G5 M        int[] arr= new int[]{12,34,55,423,5567,123456,1,4,5};//新new一个数组
    * p# {& ?; e  K( w8 N& d! K        //求最值、总和、平均值
    / K9 o4 `) O4 C4 y, j6 p        int max=p.getMax(arr);//最大值
    7 S% _9 y( K) M) X        int min=p.getMin(arr);//最小值
    " G0 a: j1 d9 O5 C, F6 z+ H        int sum=p.getSum(arr);//总和
    5 B6 g! ^9 B2 K, [" m/ g( I        double avg=p.getAvg(arr);//平均数& q2 K, C3 U3 z3 `3 Y  f
            System.out.println("最大值:"+max+"最小值为:"+min+"总和为:"+sum+"平均数为:"+avg);//输出
    4 w& M( O1 l, H" v7 Z; a        p.print(arr);//反转前遍历(第一行)8 {& k# S$ @; h3 p/ _
            p.reverse(arr);//反转数组# c8 s8 l! d4 l9 C5 r% [/ |# a
            p.print(arr);//反转后遍历(第二行)$ Q2 @" b* R& j1 T7 W  M5 M$ v" c
            int[] copyarr=p.copy(arr);//复制数组arr给新数组copyarr9 Y9 w3 n/ g# ^9 r4 ^
            p.print(copyarr);//遍历copyarr(第三行)
    & z$ F, ^: T/ z( N0 K7 G1 Z        p.print(arr);//排序前遍历(第四行)+ c" M- S" y$ r3 c  t
            p.sort(arr);//排序(冒泡)
    & W% w' a' \) A1 j( N) r+ J        p.print(arr);//排序后遍历(第五行)
      B! ?# ~: r# z$ ?" V  Q: F        System.out.print("查找元素34:");//查找指定元素(这里针对的是排序后遍历出的数组,而不是最初的数组)# H# y% Z8 P! M2 i' u' C: Q; u" ?
            int index= p.getIndex(arr,34);
    7 f$ V7 I. C9 P. s7 Z        if (index>=0){
    1 K- G) u: P: F0 t% J            System.out.println("找到了,在位置:"+index);
    % H( B. M4 `0 G4 p1 ~        }else {
    ' P% x6 |0 V) p+ _6 n" V            System.out.println("没有找到");
    : B3 N% T0 `# J" \3 p8 O        }
    / e7 U* b0 `, f    }3 O* i) P; H$ B
    }
    / {) [" v6 }! P- ?; d
    5 S2 w5 l0 g# |1
    . e9 ?3 m. T# S2
    0 T2 s$ r5 k& N3 L38 ]  S6 c8 G+ k; ~; H+ x6 W
    4. O. G) L2 N- w, p5 v8 |2 j
    5; Z  t. G2 Y; J# X, H) }4 w
    6
    9 e3 \$ Q, D& F' u$ J+ n1 h77 y! F  b' d5 g; O
    8( d8 Y. J% k8 O5 E  p
    9
    2 R& q0 x! V. r) j( {10
    ' g+ Q" L1 K/ t8 {* v: c116 q# j( c. N/ l* q1 b
    12
    & `' ]1 ~  T) Y/ }6 b1 p% W13
    6 y) Y( r: j. W' ?& n8 p# `14
    + Z* z. e. ^' k. J2 y15
    / O  u$ r2 j4 \; G9 y16* i3 p* N0 R# M% m4 o
    17$ v7 ?- p0 i  k4 p* b
    18. ]2 Z! w# G) q( m0 p: U
    19
    6 ^. R0 v5 H3 z( I20
    , L# e6 w9 w% `. o21$ y2 Q$ S5 ?) a4 ~. N
    22; c( c4 B% J5 A9 o( o
    23. a2 ?; [  m8 v# ?# e0 D
    24
    ) x0 j0 |8 y+ Y$ |3 B( H25
    ! A% W) B! Y6 N26( z9 W4 O* M2 _2 M
    27
    ( F) t* _  \1 K* B- |4 ]0 n* P) v28
    9 _- s4 y, u6 @- E运行结果(对应上面main方法中的代码注释来看):  [1 V7 ?9 E/ }7 M) J, ]8 M; p, Q
    0 U6 H0 B" d5 O0 w9 j) [0 i
    ————————————————
    ) w! G5 K/ \3 ^( r; z版权声明:本文为CSDN博主「金士曼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。& b- H# s- H3 Y9 J, M( c
    原文链接:https://blog.csdn.net/weixin_45869823/article/details/126754797
    7 Q0 X- X. A4 k/ K
    # p: \% R* s6 j0 A) U8 |
    " z0 q' E1 n8 q7 v
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    0

    主题

    10

    听众

    299

    积分

    升级  99.5%

  • TA的每日心情
    开心
    2023-10-14 10:28
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-14 17:06 , Processed in 0.554370 second(s), 56 queries .

    回顶部