我曾经参加过几次编程比赛,但是当时用的是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];

五.数组的转换

1.int型数组转为字符串

 int[] arr = new int[]{1,2,3};
String s = Arrays.toString(arr);

整理自:核心技术卷一

java:编程比赛中有用的方法整理(一)数组的更多相关文章

  1. Java编程思想中关于闭包的一个例子

    Java编程思想中的一个例子,不是很理解使用闭包的必要性,如果不使用闭包,是不是有些任务就不能完成?继续探索. package InnerClass; interface Incrementable ...

  2. java.nio.Buffer 中的 flip()方法

    在Java NIO编程中,对缓冲区操作常常需要使用  java.nio.Buffer中的 flip()方法. Buffer 中的 flip() 方法涉及到 Buffer 中的capacity.posi ...

  3. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  4. Java 8 接口中的默认方法与静态方法

    Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...

  5. 2017.10.28 针对Java Web应用中错误异常处理方法的运用

    针对Java Web应用中错误异常处理方法的运用 在javaweb中其异常都需要对Checked Exception之下的Exception进行继承,并且有选择地对发生的错误和异常进行处理.Java同 ...

  6. java:比赛中常用方法整理——字符串(基础)

    一.将字符串转化为字符数组: toCharArray返回一个字符数组. char[] a=J.toCharArray(); 二.字符串的长度 字符串的长度和字符数组的长度是不一'样'的. 字符串长度( ...

  7. Java并发编程--多线程中的join方法详解

    Java Thread中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码 例如:定义一个People类,run方法是输出姓名年龄. ...

  8. JAVA编程思想中总结的与C++的区别

    Java和C++都是面向对象语言.也就是说,它们都能够实现面向对象思想(封装,继乘,多态).而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象 ...

  9. java.lang.Math中的基本方法

    java.lang.Math类提供的方法都是static的,“静态引入 ”使得不必每次在调用类方法时都在方法前写上类名:             import static java.lang.Mat ...

随机推荐

  1. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战

    一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...

  2. .NET Core中使用AutoMapper

    何为AutoMapper AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 安装AutoMapper 这里我们在NuGet中下载安装Au ...

  3. C++结构体与排列三平台出售

    结构将不同的数据类型整合在一起构成一个新的类型,排列三平台出售(企 娥:217 1793 408)相当于数据中一条记录,比如学生结构体,整合了学好,姓名等信息.结构体的好处就是可以对这些信息进行整体管 ...

  4. JSON Web Token入门教程

    目录 一.跨域认证的问题 二.JWT的原理 三.JWT的数据结构 3.1Header 3.2Payload 3.3 Signature 3.4 Base64URL 四.JWT的使用方式 五.JWT的几 ...

  5. 04. 启停redis服务

    启动 查看redis.conf文件,可以通过general中的说明,配置通过systemd来启停redis和查看redis状态(作者没有采用,而是使用service管理,service配置参考< ...

  6. mt8665芯片怎么样?联发科mt8665芯片参数介绍

    MediaTek的MT8665是一款高度集成的LTE片上系统(SoC),它包含了先进的功能,例如LTE cat.4.Octa HMP核心在1.5GHz下工作.3D图形(OpenGLES 3.0).13 ...

  7. springmvc重定向

    String success="07大吉大利25"; @RequestMapping("str") public String test1(){ return ...

  8. Ftp修改为主被动模式命令

    FTP是有两种数据连接模式的,主动模式和被动模式. PORT(主动)方式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路.当需要传送数据时,客户端在命令链路上用 ...

  9. dubbo源码研究(一)

    1. dubbo源码研究(一) 1.1. dubbo启动加载过程 我们知道,现在流行注解方式,用spring管理服务,dubbo最常用的就是@Reference和@Service了,那么我首先找到这两 ...

  10. Vue.js-05:第五章 - 计算属性与监听器

    一.前言 在 Vue 中,我们可以很方便的将数据使用插值表达式( Mustache 语法)的方式渲染到页面元素中,但是插值表达式的设计初衷是用于简单运算,即我们不应该对差值做过多的操作.当我们需要对差 ...