java-数组的应用

来源:互联网 发布:纯音听力测试软件 编辑:程序博客网 时间:2024/05/16 12:22

我感觉java有的时候真的狠给力!!!

我觉得我可以用用java...

这篇文章我会持续更新,我觉得,如果要是想把java利用到ACM中,就必须得用好数组,所以学好数组是必须的,

第一步,我学的是数组的动态生成,以及比较重要的排序,

代码:

package com;import java.util.Arrays;import java.util.Scanner;//import java.util.Arrays;public class DemoBinarySearch {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n;while (input.hasNext()){n = input.nextInt();int[] a = new int[n];//这个不得不说,真的爽爆了,申请内存的时候还可以存变量....for (int i = 0; i < n; i++) {a[i] = input.nextInt();}//Arrays.sort(a, 0, a.length);//爽爆了,还是那种的n*log(n)的算法Arrays.sort(a);//这两种排序方式个人觉得都不错,第一种,是有多少个元素就排序多少个,这样的就得动态生成你所需要的数目了   //第二种的话,就像上面的,就是指明开始位置,和最后位置.for (int i = 0; i < n; i++) {System.out.print(a[i]);System.out.print(" ");}System.out.println();}}}



再来一个有用的binarySearch()----二分查找

package com;import java.util.Arrays;import java.util.Scanner;//import java.util.Arrays;public class DemoBinarySearch {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n;while (input.hasNext()){n = input.nextInt();int[] a = new int[n];//这个不得不说,真的爽爆了,申请内存的时候还可以存变量....for (int i = 0; i < n; i++) {a[i] = input.nextInt();}//Arrays.sort(a, 0, a.length);//爽爆了,还是那种的n*log(n)的算法Arrays.sort(a);//这两种排序方式个人觉得都不错,第一种,是有多少个元素就排序多少个,这样的就得动态生成你所需要的数目了   //第二种的话,就像上面的,就是指明开始位置,和最后位置.for (int i = 0; i < n; i++) {System.out.print(a[i]);System.out.print(" ");}System.out.println();//int idx = Arrays.binarySearch(a, 0, a.length, 5);//当然这个二分的前提就是必须已经排好序了,int idx = Arrays.binarySearch(a, 5);//二分查找,这个也不错,我表示java把所有的东西都写好了,我都不好意思了,这样搞下去,我们什么都不用写了.System.out.println("the idx = " + (idx + 1));}}}

以下是fill函数和copy函数的一些说明:

package com;import java.util.Arrays;import java.util.Scanner;public class DemoArrays {public static int n;public static void print(int[] a) {for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}n++;System.out.println();}public static void main(String[] args) {int[] b;int[] c;Scanner input = new Scanner(System.in);while (input.hasNext()) {n = input.nextInt();int[] a = new int[n];Arrays.fill(a, 1);//fill方法就是可以直接把数组的所有内容全部填充成相同的内容b = Arrays.copyOf(a, 20);//将数组的内容复制到数组c = Arrays.copyOfRange(a, 0, 10);//将数组a中的0-10的内容复制给c;print(a);//另外如果你不想创建对象直接运用类内的方法的话,就得申请成静态的方法,而静态的方法只能用静态的变量.print(b);print(c);System.out.println(n);//这里的n是执行了n++以后的n.所以我们应该知道,静态方法只能引用静态常量,也就是相当于,c++中的全局变量一样!!!for (int i = 0; i < n; i++) {a[i] = input.nextInt();}}}}



原创粉丝点击