java简单实现数组的增删改查方法

这篇文章主要介绍了Java数组的增删改查的示例,帮助大家更好的利用Java处理数据,感兴趣的朋友可以了解下,希望能给你带来帮助

java简单实现数组的增删改查方法,久久派带你了解更多相关信息。

目录
  • 1.一维数组​
  • 2.数组的扩容
  • 3.数组的复制
    • 1.直接将数组赋值给新数组
    • 2.创建一个新的数组,再将原数组的数据逐个赋值
    • 4.数组的删除
    • 5.数组的排序
  • 6.数组的查找
    • 1.顺序查找:从头到尾遍历(简单除暴,效率相对较低)
    • 2.二分法查找
  • 总结

    1.一维数组​

    概念:一组数据的容器(数组可以存放多个数据)

    ​ 注意:

    ​ 1.数组是引用数据类型

    ​ 2.数组中的数据又叫做元素

    ​ 3.每个元素都有编号叫做下标/索引

    ​ 4.下标从0开始

    ​ 5.数组初始化后,会在内存中开辟一连串连续的空间

    ​ 6.数组一旦初始化后长度不可以改变(数组没有扩容和删除)

    ​ 7.数组的操作:添加、修改、查询​

    ​ 数组的声明:数据类型[] 数组名;​

    数组的初始化:

    ​ 静态初始化:数据由程序员指定,长度由系统分配

    public static void main(String[] args){		//静态初始化1		//String[] names = new String[]{\"小明\",\"小红\",\"铁蛋\",\"二狗\",\"大傻子\"};		//静态初始化2		//String[] names;		//names = new String[]{\"小明\",\"小红\",\"铁蛋\",\"二狗\",\"大傻子\"};		//静态初始化3		String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\",\"大傻子\"};		//设置指定下标上的元素		names[3] = \"大狗\";		//获取指定下标上的元素		String n = names[3];		System.out.println(\"获取指定下标上的元素:\" + n);//林成		//ArrayIndexOutOfBoundsException - 数组下标越界异常		//System.out.println(names[100]);		//获取元素个数		int len = names.length;		System.out.println(\"获取元素个数:\" + len);//5		System.out.println(\"-----------\");		//遍历 - for循环		for(int i = 0;i<names.length;i++){			System.out.println(names[i]);		}		System.out.println(\"-----------\");		//遍历 - foreach(增强for循环)		for(String str:names){//遍历数组,依次把元素赋值给str			System.out.println(str);		}		/**			遍历时要使用到下标,就用for循环遍历			遍历时要不使用到下标,就用foreach遍历			*/	}

    动态初始化:长度由程序员指定,数据由系统分配(默认值)

    ​ 整数类型:0

    ​ 浮点类型:0.0

    ​ 字符类型:\’ \’

    ​ 布尔类型:false

    ​ 引用类型:null(空)

    public static void main(String[] args){		//动态初始化1		String[] names = new String[5];//5->5个长度		//设置指定下标上的元素		names[0] = \"小明\";		names[1] = \"铁蛋\";		names[2] = \"二狗\";		//获取指定下标上的元素		String n = names[2];		System.out.println(\"获取指定下标上的元素:\" + n);//二狗		//ArrayIndexOutOfBoundsException - 数组下标越界异常		//System.out.println(names[100]);		//获取元素个数		int len = names.length;		System.out.println(\"获取元素个数:\" + len);//5		System.out.println(\"-----------\");		//遍历 - for循环		for(int i = 0;i<names.length;i++){			System.out.println(names[i]);		}		System.out.println(\"-----------\");		//遍历 - foreach(增强for循环)		for(String str:names){//遍历数组,依次把元素赋值给str			System.out.println(str);		}		/**			遍历时要使用到下标,就用for循环遍历			遍历时要不使用到下标,就用foreach遍历			*/

    2.数组的扩容

    前面讲到数组一旦初始化后长度不可以改变(数组没有扩容和删除),那我们如何在原来的数组上添加数据。数组没有扩容,但是可以将数组中的数据从小的容器放到大的容器里。

    public static void main(String[] args){		//源数组		String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\"};		//新数组		//(names.length>>1在此次可以理解为(names.length/2)		int capacity = names.length + (names.length>>1);//新容量:是源数组长度的1.5倍		String[] newNames = new String[capacity];		//把源数组所有的数据迁移到新数组中		for(int i = 0;i<names.length;i++){			newNames[i] = names[i];		}		//将新数组的地址赋值给源数组		names = newNames;		//遍历源数组		for(String name:names){			System.out.println(name);		}	}

    小明小红铁蛋二狗 null null

    3.数组的复制

    1.直接将数组赋值给新数组

    String[] names = {“小明”,“小红”,“铁蛋”,“二狗”};

    String[] newNames = names;

    这样做会有一个小缺陷,修改源数组,新数组的数据也随之改变.这是因为赋值号所给到的不是原数组的数据,而是原数组的地址。

    public class Test111 {	public static void main(String[] args){	    //源数组	    String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\"};	    //新数组	    String[] newNames = names;	    //遍历新数组	    System.out.print(\"修改原数据前:\");	    for(String name : newNames){	        System.out.print(name+\"\\t\");	    }	    System.out.println();	    //修改源数组	    names[0] = \"大傻子\";	    //遍历新数组	    System.out.print(\"修改原数据后:\");	    for(String name : newNames){	        System.out.print(name+\"\\t\");	    }	    System.out.println();	}}

    修改原数据前:小明 小红 铁蛋 二狗 修改原数据后:大傻子 小红 铁蛋 二狗

    2.创建一个新的数组,再将原数组的数据逐个赋值

    public static void main(String[] args){		//源数组		String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\"};		//新数组		String[] newNames = new String[names.length];		//将源数组中数据依次赋值给新数组		for(int i = 0;i<names.length;i++){			newNames[i] = names[i];		}		//修改源数组		names[0] = \"大聪明\";		//遍历新数组		for(String name : newNames){			System.out.println(name);		}	}

    小明 小红 铁蛋 二狗

    4.数组的删除

    1.新建一个小容量的数组,然后将不删除的数据导入。排除了需要删除的数据

    缺点:数组原本是存放数据的,删除元素后,数组长度变短

    public static void main(String[] args){		//源数组		String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\"};		//新数组		String[] newNames = new String[names.length-1];		//将源数组的数据迁移到新数组中,要删除的元素(深田咏美)除外		int index = 0;//新数组的下标		for(String name:names){			if(!name.equals(\"小红\")){				newNames[index] = name;				index++;			}		}		//将新数组的地址赋值给源数组		names = newNames;		//遍历源数组		for(String name:names){			System.out.println(name);		}	}

    小明 铁蛋 二狗

    2.将需要删除的数据后面的数据整体向前移,覆盖掉删除的数据,这样就可以留出空间了

    public static void main(String[] args){		//源数组		String[] names = {\"小明\",\"小红\",\"铁蛋\",\"二狗\"};		//数据的迁移		for(int i = 1;i<names.length-1;i++){			names[i] = names[i+1];		}		names[names.length-1] = null;		//遍历源数组		for(String name:names){			System.out.println(name);		}	}

    小明铁蛋二狗 null

    5.数组的排序

    数组的排序方法有很多种,今天就分享比较简单的冒泡排序

    ​ 口诀:

    ​ N个数字来排序

    ​ 两两相比小靠前

    ​ 外层循环N-1

    ​ 内层循环N-1-i

    public static void main(String[] args){		int[] is = {39,77,27,20,45,62};		for(int i = 0;i<is.length-1;i++){			for(int j = 0;j<is.length-1-i;j++){				if(is[j] > is[j+1]){					int temp = is[j];					is[j] = is[j+1];					is[j+1] = temp;				}			}		}		for(int num : is){			System.out.println(num);		}	}

    这里分享一个Arrays工具类,导入Arrays包后可直接调用里面的排序方法sort

    public static void main(String[] args){	import java.util.Arrays;    int[] a={1,5,8,6};    for(int num : a){		System.out.println(num);	}}

    1 5 6 8

    6.数组的查找

    1.顺序查找:从头到尾遍历(简单除暴,效率相对较低)

    for(int i = 0;i<is.length;i++){			if(is[i] == num){				System.out.println(\"查找到了\");			}		}

    2.二分法查找

    ​ 前提:先排序(效率高于顺序查找)

    ​ 排序时就可以使用Arrays.sort(is);

    **二分法查找适用于数据量较大时,但是数据需要先排好顺序。

    public static void main(String[] args){		int[] is = {39,77,27,20,45,62};		int num = 77;		//排序		Arrays.sort(is);		int start = 0;		int end = is.length-1;		while(start <= end){			int mid = (start+end)/2;			if(num >is[mid]){				start = mid+1;			}else if(num < is[mid]){				end = mid-1;			}else{				System.out.println(\"查找到了\");				break;			}		}	}

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注趣讯吧的更多内容!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/8625.html

    (0)
    上一篇 2021-07-30 23:23:59
    下一篇 2021-07-30 23:24:01

    相关推荐

    • 联想拯救者自带的杀毒软件(联想电脑管家怎么样)

      经常看显示器的朋友应该知道,现在的显示器产品提供的可调节选项是非常丰富的,甚至能够提供给显示器加压然后提升显示器响应时间的选项,加压之后显示器的响应时间会降到一个更低的值,从而改善显示器的拖影现象。虽…

      2021-12-01
      0
    • 笔记本保养有妙招!(笔记本保养)

      笔记本保养(笔记本保养有妙招!) 大家经常使用笔记本,但却很少人会留意保养问题,导致自己原本能用很久的笔记本,没有两三年就已经损耗的差不多了,虽然现在笔记本电脑的价格已经很便宜了,但我们还是希望大家能够通过几个日常生活当中的小技巧来延长笔记本的使用寿命,因为只要设定好之后,后面就不需要太多人工干预了。轻轻松松的让你的笔记本再多战三年。 技巧一:笔记本电池要经常养护,通常来说,笔记本电池的使用寿命是…

      2021-07-28
      0
    • 分享有趣实用的微信小技巧(电脑上的微信聊天记录恢复到手机)

      现实生活中,我们每个人或多或少都有过微信丢失聊天记录的经历吧?有的人可能因为手机自身的原因,新换了一部手机,就把之前的微信聊天记录丢失了;有的可能因为和别人赌气,一气之下就把和对方的所有聊天记录都删除了…….诸如此类情况,如果因为自己的手机

      2021-11-30 随笔
      0
    • 铭影显卡质量怎么样(一线显卡品牌排行)

      还有2天,就进入到2020年的最后一个月了。不得不说这一年真是坎坷,新冠不讲武德,蛋壳不讲武德,显卡的价格也不讲武德。哎,到底苦的还是咱们老百姓啊!纵使RTX30系列显卡发布了,好像也雨我无瓜。哥两袖清风,穷的响叮当,只能买得起入门级显卡。高于一千

      2021-11-04 用户投稿
      0
    • 如何购买黄金(购买黄金需要注意什么)

      如何购买黄金?购买黄金需要注意什么,久久派带你了解相关信息。农历新年将至,不少市民都有购买金饰的计划,那么如何在琳琅满目的金饰饰品和各式各样的优惠活动中,选择自己喜欢并且优惠的金饰呢?黄金首饰的销售分两类:01按克数计重销售黄金首饰重量×金价+黄金首饰重量×每克工费=黄金首饰的价格。这类黄金首饰优点是价格一目了然,实打实的黄金,首饰重在黄金,工艺次之,金店回收的时候价格相差

      2021-11-24 用户投稿
      0
    • 编制与合同制的区别(事业单位聘用制和编制有什么区别)

      现在教师行业还是挺热门的,从各个师范院校的招生火爆就可见一斑。并不是有了教师资格证,从师范类的学校毕业之后就一定能够当老师,想要成为一名老师,还要通过教师招聘考试才行。同样通过招考成为老师,其实也还是有所不同的,有的招聘考试招的是有编制的老

      2021-12-14
      0

    发表回复

    登录后才能评论