Java中对数组的操作
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同。
Java语言中提供的数组是用来存储固定大小的同类型元素。如:声明一个数组变量,numbers[100]来代替直接声明100个独立变量number0,number1,...,number99。本文将介绍Java中对于数组的一些简单操作及应用。
1、数组的扩容
/**
* 数组的扩容:本质上是先定义一个更大的数组,然后将原数组里面的元素原封不动的拷贝到新数组中
* @param arr:要扩容的数组
* @return:返回扩容后的新数组
*/
public static String[] extendRange(String[] arr) {
//使原数组扩容为原来的2倍
String[] strArr = new String[arr.length*2];
System.arraycopy(arr, 0, strArr, 0, arr.length);
return strArr;
}
2、数组的查找
/**
* 数组的查找:在给定的数组中查找出指定的元素
* @param arr:要查找的数组
* @param index:要查找的元素
* @return:若找到,则返回数组中元素所在的索引,若没有找到则返回-1
*/
public static int searchElement(String[] arr,String str) {
//遍历数组,将数组中的元素与要查找的元素进行一一比对
for(int i=0;i<arr.length;i++) {
if(arr[i]==str) {
return i;
}
}
return -1;
}
3、元素的插入
/**
* 元素的插入:在给定的数组中的特定位置插入指定的元素
* 注意:在测试此方法前,应先保证数组索引不会出现越界异常,可先调用extendRange(String[] arr)进行数组扩容
* @param arr:给定的数组
* @param index:要插入的元素索引
* @param str:要插入的元素
* @return:返回插入后的数组
*/
public static String[] insertElement(String[] arr,int index,String str) {
//先找到数组中索引为index的位置
int equalsIndex = -1; //记录数组中索引为index的位置
for(int i=0;i<arr.length;i++) {
if(i==index) {
equalsIndex = i;
break;
}
}
//找到了
if(equalsIndex!=-1) {
//将index索引所在元素及之后的所有元素往后移动一个位置,再在index索引所在位置插入指定元素
for(int i=arr.length-2;i>=equalsIndex;i--) {
arr[i+1]=arr[i];
}
arr[equalsIndex]=str;
}else {
//没有找到
System.out.println("对不起,您输入的数组索引不存在!");
}
return arr;
}
4、元素的修改
/**
* 元素的修改:将数组中指定的元素修改为给定的元素
* @param arr:给定的数组
* @param strOld:要修改的元素
* @param strNew:修改后的元素
* @return:返回修改后的数组
*/
public static String[] modifyElement(String[] arr,String strOld,String strNew) {
//调用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引
int index = searchElement(arr,strOld);
//找到啦
if(index!=-1) {
arr[index] = strNew;
}else {
//没找到
System.out.println("对不起,您要修改的元素不存在!");
}
return arr;
}
5、元素的删除
/**
* 元素的删除:将数组中指定的元素删除
* @param arr:给定的数组
* @param str:要删除的元素
* @return:返回删除后的数组
*/
public static String[] deleteElement(String[] arr,String str) {
//调用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引
int index = searchElement(arr, str);
//找到啦
if(index!=-1) {
//将index所在及以后索引的元素依次前移一位
for(int i=index;i<arr.length-1;i++) {
arr[i]=arr[i+1];
}
//将最后一位置为空
arr[arr.length-1]=null;
}else {
//没找到
System.out.println("对不起,您删除的元素不存在!");
}
return arr;
}
Java中对数组的操作的更多相关文章
- JAVA中,数组的操作与排序
自己写了正向反向的冒泡排序,还用了静态和NEW方法实现. import java.util.Arrays; public class HelloJava { public static void ma ...
- Java中JNI的使用详解第五篇:C/C++中操作Java中的数组
在Java中数组分为两种: 1.基本类型数组 2.对象类型(Object[])的数组(数组中存放的是指向Java对象中的引用) 一个能通用于两种不同类型数组的函数: GetArrayLength(ja ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- 第81节:Java中的数组
第81节:Java中的数组 本节介绍数组的基本概念,数据就是一种数据结构,可以用来存储多个数据,每个数组中可以存放相同类型的数据.比如,在学校,我们是一个班,这里的班级中每个同学都是这个班级数组中的元 ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- Java中的数组与集合
此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...
- Java中的数组和方法
3.1 数组的定义和使用 数组(Array)是用来存储一组相同数据类型数据的集合.数组中的每个数据称为一个元素(element),数组可以分为一维数组,二维数组和多维数组.我们 主要讲解一维数组和二维 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
随机推荐
- npm安装依赖包 --save-dev 和 --save; package.json的devDependencies和dependencies 的区别!
以前一直在纠结一个npm安装的包依赖管理的问题.是这样的: 我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是:--save- ...
- 【ssh】端口转发
来源:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/ 非常非常好用,可以通过跳板解决两台服务器无法连接的问题 第一部分 概述 ...
- 20165314 Linux安装及学习
Linux的安装 安装虚拟机比我想象中要来的简单,虽然在这过程中出现了一些粗心大意导致的问题,但是重新再做一遍,问题就都解决了,比如: 未能加载虚拟光盘 在云班课的得到了同学的提示下我把虚拟机桌面的光 ...
- shell 批量替换内容
一.查找/data/www/vhosts/WOStest2_YiiFramework/console/sh/下所有.sh文件 把/data/www/vhosts/WOS_YiiFramework 替换 ...
- 51 Nod 1240 莫比乌斯函数
1240 莫比乌斯函数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使 ...
- mybatis 遍历map;
mybatis 遍历map; 参考http://blog.csdn.net/hj7jay/article/details/78652050 ps: ${m[key]}这是显示 打印的key读value ...
- Scrapy项目创建以及目录详情
Scrapy项目创建已经目录详情 一.新建项目(scrapy startproject) 在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令: PS C:\scra ...
- SQLServer锁的基础问题探究
SqlServer需要在执行操作前对目标资源获取所有权,那么久发生锁定,是一个逻辑概念.为了保证事务的ACID特性设计的一种机制. 在多用户并发操作数据时,为了出现不一致的数据,锁定是必须的机制.使用 ...
- android开发默认图标怎么换?
首先要在资源文件放入想换的图标图片拖到drawable-XX文件夹下, 然后打开AndroidManifest.xml这个配置清单文件找 到application标签里的这句android:icon= ...
- Android 实现连续两次点击或连续多次点击退出应用
前言: 日常开发过程中,经常会遇到“连续点击两次退出应用”的需求(和“连续点击多次”的需求(如:手机从设置中进入开发者选项). 直接上代码:双击退出: private long exitTime = ...