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.数组基本概念 数组是 ...
随机推荐
- 为自己搭建一个分布式 IM 系统二【从查找算法聊起】
前言 最近这段时间确实有点忙,这篇的目录还是在飞机上敲出来了的. 言归正传,上周更新了 cim 第一版:没想到反响热烈,最高时上了 GitHub Trending Java 版块的首位,一天收到了 3 ...
- 阿里云卸载自带的JDK,安装JDK完成相关配置
0.预备工作 笔者的云服务器购买的是阿里云的轻量应用服务器,相比于云服务器ECS,轻量应用服务器是固定流量但是网络带宽较高,对于服务器来说,网络带宽是非常昂贵的,而带宽也决定了你的应用访问的流畅度,带 ...
- 入门系列之在Ubuntu 16.04使用Buildbot建立持续集成系统
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由angel_郁发表于云+社区专栏 介绍 Buildbot是一个基于Python的持续集成系统,用于自动化软件构建,测试和发布过程. 在 ...
- 第5章 令牌自省端点(Token Introspection Endpoint) - IdentityModel 中文文档(v1.0.0)
OAuth 2.0令牌自省的客户端库是作为HttpClient扩展方法提供的. 以下代码将引用令牌发送到内省端点: var client = new HttpClient(); var respons ...
- Dynamics 365 CE中使用FetchXML进行聚合运算
微软动态CRM专家罗勇 ,回复328或者20190429可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- idea上maven使用心得(三)——用pom.xml添加jar包
下面是如何使用maven,maven在idea里面得结构应该是这样: scr底下是main,java是存放web的.java文件 resource目录一般是存放数据库连接数据的,或者存各种资源文件,音 ...
- spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
一,学习背景 1. 前言 对于我们不管工作还是生活中,需要或者想去学习一些东西的时候,大致都考虑几点: a) 我们为什么需要学习这个东西? b) 这个东西是什么? c) ...
- Open ID Connect(OIDC)在 ASP.NET Core中的应用
我们在<ASP.NET Core项目实战的课程>第一章里面给identity server4做了一个全面的介绍和示例的练习 ,这篇文章是根据大家对OIDC遇到的一些常见问题整理得出. 本文 ...
- Scala设计模式
尽管Scala还有一些基于语言特性的设计模式,单本文还是着重于介绍大家所周知的经典设计模式,因为这些设计模式被认为是开发者之间交流的工具. 创建型设计模式 1.工厂方法模式 2.延迟加载模式 3.单例 ...
- 4年前端、2年CTO:一个非科班程序员的真实奋斗史
1.引言 我,Scott,一家创业公司的 CTO. 从业6年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了100多个前端工程师和Nodejs工程师,对于前端发展的这个职业算是有些感触 ...