300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 字符串数组遍历_java数组遍历 java方法定义

java 字符串数组遍历_java数组遍历 java方法定义

时间:2022-02-17 17:14:58

相关推荐

java 字符串数组遍历_java数组遍历 java方法定义

1.遍历数组for与foreach

String [] test = {"java","php","bootstrap","vue","angular","node","javascript","c++"};

for循环:for (int i = 0;i

foreach:for (String text : test) {System.out.println(text) }

上面两者效果是一样的。foreach中text即数组test中的元素,然后依次输出数组元素text。

2.java中定义方法(函数)

访问修饰符 返回值类型 方法名(参数) { 方法体 }

访问修饰符:public(公有)、protected(受保护)、private(私有)

返回值类型:void(方法不返回值)、若有返回值注明返回值类型

参数的写法:类型 变量,类型 变量,类型 变量.......

e.g: public void/String test(int num1,int num2,int num3) { 方法体 }

以上是定参,不定参arg/args请参照

3.方法体内创建对象及调用方法

现在有一个HelloWorld类,内部有个main方法和show方法,现在要在main方法内部调用show方法:

HelloWorld hello = new HelloWorld(); //实例化一个HelloWorld类(对象)==>hello

hello.show(); //实例化的对象继承了类的public方法show(),于是,直接调用

如果show方法有返回值,要将此方法作进一步处理,赋值给变量,double avg = hello.show(),这样返回值的数值就赋值给了变量avg。(数据类型要一致)

4.方法的重载

所谓重载,就是在一个类中,有多个方法名相同的方法,但是它们的区别在于参数

参数类型,参数个数会不尽相同。

例如:show(int age)、show(String name)、show(int age,String name);

这三个都是show方法,当调用重载方法时,java会根据参数的类型和个数来决定要调用哪个方法。

show(26)调用的是show(int age)方法;

show("姓名")调用的则是show(String name)方法。

5.习题(imooc)

e.g:给定一个成绩数组,要求输出考试前三名,要舍去数组中成绩在0-100之外的。

我当时的思路:用一个for循环把数组中满足成绩要求(0-100)的项赋值给新数组,然后对新数组进行排序,从大到小取前三名。

遇到的问题:1.java数组初始化时须定义长度,因为不满足条件的项要舍去,故新数组的长度是未知的;

2.查资料得知ArrayList方法可以不用预先定义ArrayList的长度,但在使用Add方法追加元素时出现诸多问题;

最后解决:想到可以在遇到成绩数组中的不满足项时,此项不追加给新数组,而是将数值0赋值给新数组,

这样新数组的长度问题解决(和旧数组一样);

例如arr[5]=199,此时明显不能将199赋值给新数组newarr[5],于是此时令newarr[5]=0,后面以此类推;

这样旧数组是{46,98,-13,56,27,176,55},处理后的新数组则是{46,98,0,56,27,0,55},

再对其sort,{0,0,27,46,55,56,98},此乃排序后的新数组;

最后成绩最高的就是newarr[newarr.length-1]

1importjava.util.Arrays;

2 public classHelloWorld {3 public static voidmain(String[] args) {4 int[] scores = {89,-23,64,91,119,52,73};5 HelloWorld hello = newHelloWorld();6 hello.sort(scores);7 }8 //定义方法完成成绩排序并输出前三名的功能

9 public void sort(int[] scores){10 int length=scores.length;11 int [] newscores = new int[length];12 int i =0;13 for(int j=0;j=0&scores[j]<=100){15 newscores[i]=scores[j];16 i++;17 }else{18 newscores[i]=0;19 i++;20 }21 }22 Arrays.sort(newscores);23 System.out.println("考试成绩前三名:");24 System.out.println(newscores[length-1]);25 System.out.println(newscores[length-2]);26 System.out.println(newscores[length-3]);27 }28 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。