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中数组的插入,删除,扩张的更多相关文章

  1. java中数组的插入

    package com.hxzy.demo; import java.util.Arrays;import java.util.Scanner; public class Demo1 { public ...

  2. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法   1 2 String[] asset = {"equity", "stocks", "gold&q ...

  3. 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[ ...

  4. Java中数组的特性

    转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...

  5. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

  6. Java中数组的初始化方式

    Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...

  7. java中数组复制的两种方式

    在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

  8. java中数组、集合、字符串之间的转换,以及用加强for循环遍历

    java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...

  9. Java 中数组的内存分配

    Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...

随机推荐

  1. 如何做好技术Team Leader

    背景 互联网公司的技术团队管理通常分为2个方向:技术管理和团队管理,互联网公司的技术TL与传统软件公司的PM还是有很大的区别,传统软件公司的PM更多注重于对项目的管理包括项目任务拆解.项目进度以及风险 ...

  2. 从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲

    缘起 哈喽大家周二好呀,刚刚经历过了几天火车抢票,整个人都不好了,不知道小伙伴对今年的春节是否还一如既往的期待呢,眼看都要春节了,本来也想写篇2018总结篇,但是怕不免会出现鸡汤文的窠臼嫌疑,想想还是 ...

  3. Protobuf 语言指南(proto3)

    Protobuf 语言指南(proto3) Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单.您可以定义数 ...

  4. 死磕 java集合之PriorityBlockingQueue源码分析

    问题 (1)PriorityBlockingQueue的实现方式? (2)PriorityBlockingQueue是否需要扩容? (3)PriorityBlockingQueue是怎么控制并发安全的 ...

  5. Redis--Memched--Cache缓存介绍使用

    目录:  一.分布式缓存—Redis与Memched的区别 1.1.      数据支持类型 1.2.      持久性 1.3.      内存利用情况 1.4.      数据一致性 1.5.   ...

  6. 【极简版】SpringBoot+SpringData JPA 管理系统

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在上一篇中已经讲解了如何从零搭建一个SpringBo ...

  7. 《k8s-1.13版本源码分析》-调度器初始化

    源码分析系列文章已经开源到github,地址如下: github:https://github.com/farmer-hutao/k8s-source-code-analysis gitbook:ht ...

  8. WordPress怎样设置菜单栏旋转小图标

    最近我在浏览别的博客的文章时,无意间发现了一个很好看的小装饰.那就是在WordPress菜单栏上的小图标.于是我研究了研究,弄到了设置方法之后决定把它分享出来. 菜单栏的小图标 设置步骤: 1, 我们 ...

  9. DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况

    目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...

  10. cesium 之三维场景展示篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...