java:编程比赛中有用的方法整理数组

Posted dark_Souls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:编程比赛中有用的方法整理数组相关的知识,希望对你有一定的参考价值。

我曾经参加过几次编程比赛,但是当时用的是c语言,现在学习了java,打算专攻java组,故以此整理。

数组无论在哪里都必不可少。

一.数组的拷贝:

使用Arrays类的copyOf方法:

1.将一个数组中的所有值拷贝到另一个里面:

int[] copiedLuckyNumber=Arrays.copyOf(luckyNumbers,luckyNumbers.length);

2.数组的扩容:

luckyNumbers=Arrays.copyOf(luckyNumbers,2*luckyNumbers.length);

如果数组元素是数值型的,那么多余元素将被赋值为0,如果数组元素是布尔型的,则将赋值为false,相反如果长度小于原始数组,只拷贝最前面的数据元素。

有了这方法就不用写个循环就能得到原函数了。

3.数组的截取:

luckyNumbers=Arrays.copyOfRange(luckyNumbers,int start,int end);

截取数组中的一段,start:起始下标(包含这个值)end:(不包含这个值)如果end超过数组的size多余的位置为0或者false

二.数组排序:

最重要的是数组里面的排序(终于可以不用写快速排序了)

Arrays.sort(yourArrays);

这个sort方法使用了优化的快速排序,效率比较高。

排序后数组中的值会按照从小到大。

三.数组的查找

数组中自带了二分搜索的方法

static int binarySearch(type[] a,type v);
static int binarySearch(type[] a,int start,int end,type v);

参数:a 类型为基本类型

   start:起始下标(包含这个值)

   end:(不包含这个值)

   v 同a的数据元素类型相同的值

 四.不规则数组(略微不那么重要)

 比如:

1

1  1

1  2  1

1  3  3  1

1  4  6  4  1

1  5  10  10  5  1

先分配行:

int[][] odds=new int[MAX+1][]

分配这些行:

for(int n=0;n<MAX;n++)

  odds[n]=new int[n+1];

 

以上是关于java:编程比赛中有用的方法整理数组的主要内容,如果未能解决你的问题,请参考以下文章

web代码片段

20个非常有用的Java程序片段

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(代码片段

BootStrap有用代码片段(持续总结)

几个有用的JavaScript/jQuery代码片段(转)

JavaScript 有用的代码片段和 trick