Java中数组的插入,删除,扩张
Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张。实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了。
语法:
System.arraycopy(a,index1,b,index2,c)
含义:从a数组的索引index1开始拷贝c个元素,拷贝到数组b中索引index2开始的c个位置上。
package cn.hst.hh; import java.util.Scanner; /**
*
* @author Trista
*
*/
public class TestArrayCopy {
public static void main(String[] agrs) {
Scanner a = new Scanner(System.in);
System.out.println("请输入数组(注意空格):");
String s = a.nextLine();
String[] s1 = s.split(" "); //拆分字符串成字符串数组
System.out.println("请输入你要插入的元素的个数:");
int n = a.nextInt();
System.out.println("请输入你要插入的位置:");
int index = a.nextInt();
s1 = addArray(s1,n,index);
print1(s1); // System.out.println("请输入需要扩大元素的个数:");
// int n = a.nextInt();
// s1 = extendArray(s1,n);
// print1(s1);
//
// System.out.println("请输入你要删除元素的位置:");
// int n = a.nextInt();
// s1 = delArray(s1,n);
// print1(s1);
} //扩张数组,n为扩大多少个
public static String[] extendArray(String[] a,int n) {
String[] s2 = new String[a.length+n];
System.arraycopy(a,0, s2, 0, a.length);
return s2;
}
//删除数组中指定索引位置的元素,并将原数组返回
public static String[] delArray(String[] b,int index) {
System.arraycopy(b, index+1, b, index, b.length-1-index);
b[b.length-1] = null;
return b;
} //插入元素
public static String[] addArray(String[] c,int n,int index) {
String[] c1 = new String[c.length+n];
String[] a1 = new String[n];
if(index==0) {
System.arraycopy(c, 0, c1, n, c.length);
}else if(index==c.length) {
System.arraycopy(c,0,c1,0,c.length); }else {
System.arraycopy(c,0,c1,0,index);
System.arraycopy(c,index,c1,index+n,c.length-index); }
a1 = getElement();
for(int i=0;i<n;i++) {
c1[index+i]=a1[i];
}
return c1;
} //打印结果
public static void print1(String[] c1) {
for(int i=0;i<c1.length;i++) {
System.out.print(i+":"+c1[i]+" ");
}
System.out.println();
} //获取需要插入的元素
public static String[] getElement() {
Scanner b1 = new Scanner(System.in);
System.out.println("请输入需要插入的元素(注意空格):");
String a = b1.nextLine();
String[] a1 = a.split(" ");
return a1;
}
}
Java中数组的插入,删除,扩张的更多相关文章
- java中数组的插入
package com.hxzy.demo; import java.util.Arrays;import java.util.Scanner; public class Demo1 { public ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
- java中数组的相关知识
1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...
- Java中数组的特性
转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...
- 在java 中,数组与 List<T> 类型的相互转换
在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...
- Java中数组的初始化方式
Java中数组的初始化方式 初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...
- java中数组复制的两种方式
在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...
- java中数组、集合、字符串之间的转换,以及用加强for循环遍历
java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...
- Java 中数组的内存分配
Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...
随机推荐
- asp.net core系列 45 Web应用 模型绑定和验证
一. 模型绑定 ASP.NET Core MVC 中的模型绑定,是将 HTTP 请求中的数据映射到action方法参数. 这些参数可能是简单类型的参数,如字符串.整数或浮点数,也可能是复杂类型的参数. ...
- Python进阶:如何将字符串常量转化为变量?
前几天,我们Python猫交流学习群 里的 M 同学提了个问题.这个问题挺有意思,经初次讨论,我们认为它无解. 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来. 万万 ...
- FreeSql 扩展包实现 Dapper 的使用习惯
简介 FreeSql.Connection.Extensions 这是 FreeSql 衍生出来的扩展包,实现(Mysql/postgresql/sqlserver/Oracle/SQLite)数据库 ...
- Python:requests:详解超时和重试
网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应.超时又可分为连接超时和读取超时. 连接超时 连接超时指的是在你的客户端实现到远端机器端口的连接时( ...
- JavaScript对象类型判断注意点
注意点 不要使用 new Number() . new Boolean() . new String() 创建包装对象:用 parseInt() 或 parseFloat() 来转换任意类型到numb ...
- 基于Nginx进行地图瓦片缓存的方案描述
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在产品的迭代中,我们完成了移动端瓦片缓存方案和服务端瓦片缓存 ...
- Android6.0 源码修改之Settings音量调节界面增加通话音量调节
前言 今天客户提了个需求,因为我们的设备在正常情况下无法调节通话音量,只有在打电话过程中,按物理音量加减键才能出现调节通话音量seekBar,很不方便,于是乎需求就来了.需要优化两个地方 1.在正常情 ...
- bat脚本自定义魔兽warIII运行分辨率,去黑边
我们一般平时安装完WarIII后运行时的分辨率默认是800*600,导致有黑边的存在.所以我写了一个bat脚本来自定义WarIII的运行分辨率.需要以管理员身份运行. 下载链接: 链接:https:/ ...
- Ambari安装HDP问题:User root is not allowed to impersonate anonymous.User: hcat is not allowed to impersonate ambari-qa
User root is not allowed to impersonate anonymous 修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项 < ...
- docker 备注
1.docker 安装 #安装环境为centos yum -y install docker service docker start #测试是否安装成功,可执行命令 docker run hello ...