Java封装数组实现包含、搜索和删除元素操作详解
本文实例讲述了Java封装数组实现包含、搜索和删除元素操作。分享给大家供大家参考,具体如下:
前言:在上一小节中我们已经会了如何获取和如何修改数组中的元素,在本小节中我们将继续学习如何判断某个元素是否在数组中存在、查询出某个元素在数组中的位置、以及删除数组中元素等方法的编写。
1.查找数组中是否包含元素e,返回true或false
//查找数组中是否包含元素e publicbooleancontains(inte){ for(inti=0;i有时候在查询过程中,我们不仅想知道是否包含该指定元素,还想是在该元素所在的位置,则我们可以编写一个查找数组中元素e所在的索引的方法。
2.查找数组中元素e所在的索引(只是一个),如果不存在元素e,则返回-1。
//查找数组中元素e所在的索引(只是一个),如果不存在元素e,则返回-1; publicintfind(inte){ for(inti=0;i3.从数组中删除index位置的元素,返回删除的元素
思路:
(1)判断索引的选择是否合法
(2)先存储需要删除的索引对应的值
(3)执行删除--实质为索引为index之后(index)的元素依次向前移动,将元素覆盖。
(4)维护size变量
(5)返回被删除的元素
//从数组中删除index位置的元素,返回删除的元素 publicintremove(intindex){ //1.判断索引的选择是否合法 if(index<0||index>size) thrownewIllegalArgumentException("您选择的位置不合法"); //2.先存储需要删除的索引对应的值 intret=data[index]; //将索引为index之后(index)的元素依次向前移动 for(inti=index+1;i有了删除index位置的元素的方法,接下来,我们可以封装一些其他的方法:
3.从数组中删除第一个元素,返回删除的元素
publicintremoveFirst(){ returnremove(0); }4.从数组中删除最后一个元素,返回删除的元素
publicintremoveLast(){ returnremove(size-1); }在数组中删除元素时,除了通过索引的方式删除之外,有时我们只知道需要删除的元素是多少,而不知道具体的索引值,因此我们编写一个通过元素值删除的方法
5.从数组中删除元素(只是删除一个)
//从数组中删除元素(只是删除一个) publicvoidremoveElement(inte){ intindex=find(e); if(index!=-1) remove(index); }这里需要说明的是关于:
(1)从数组中删除元素我们并不需要返回被删除的元素,这是由于对于使用者来说,已经知道自己要删除的值是多少了,内部无须在返回,
(2)针对通过索引方式删除的元素需要返回被删除,这是由于用户并不知道自己删除的元素值是什么,我们把被删除的值返回给用户,以便于用户在需要使用时取用。
6.自定义数组方法测试验证
publicclassArrayTest{ publicstaticvoidmain(String[]args){ //测试toString()方法 Arrayarr=newArray(20); for(inti=0;i<10;i++){ //测试addLast(inte)方法 arr.addLast(i); } System.out.println("添加数组元素:"); System.out.println(arr); //测试add(intindex,inte)方法 arr.add(1,200); System.out.println("在数组指定索引位置插入元素e:"); System.out.println(arr); //测试addFirst(inte)方法 arr.addFirst(-10); System.out.println("在数组头部位置插入元素e:"); System.out.println(arr); //测试get(intindex)方法 System.out.println("根据数组索引查找数组元素:"); System.out.println(arr.get(11)); //测试set()方法 arr.set(11,1000); System.out.println("修改数组索引位置上元素值:"); System.out.println(arr.get(11)); //测试remove(index)方法 System.out.println(arr); arr.remove(0); System.out.println("删除数组中指定index元素:"); System.out.println(arr); //测试removeFist()方法 arr.removeFirst(); System.out.println("删除数组中第一个元素:"); System.out.println(arr); //测试removeLast()方法 arr.removeLast(); System.out.println("删除数组中最后一个元素:"); System.out.println(arr); //测试removeElement(inte)方法 arr.removeElement(6); System.out.println("删除数组中指定元素:"); System.out.println(arr); //测试contains(inte)方法 booleanisContains=arr.contains(1); System.out.println("数组中是否存在元素e:"); System.out.println("isContains="+isContains); //测试find(inte)方法 intindex=arr.find(2); System.out.println("元素e在数组中的索引:"); System.out.println("index="+index); } }结果如下:
添加数组元素:
Array:size=10,capacity=20
[0,1,2,3,4,5,6,7,8,9]
在数组指定索引位置插入元素e:
Array:size=11,capacity=20
[0,200,1,2,3,4,5,6,7,8,9]
在数组头部位置插入元素e:
Array:size=12,capacity=20
[-10,0,200,1,2,3,4,5,6,7,8,9]
根据数组索引查找数组元素:
9
修改数组索引位置上元素值:
1000
Array:size=12,capacity=20
[-10,0,200,1,2,3,4,5,6,7,8,1000]
删除数组中指定index元素:
Array:size=11,capacity=20
[0,200,1,2,3,4,5,6,7,8,1000]
删除数组中第一个元素:
Array:size=10,capacity=20
[200,1,2,3,4,5,6,7,8,1000]
删除数组中最后一个元素:
Array:size=9,capacity=20
[200,1,2,3,4,5,6,7,8]
删除数组中指定元素:
Array:size=8,capacity=20
[200,1,2,3,4,5,7,8]
数组中是否存在元素e:
isContains=true
元素e在数组中的索引:
index=2
关于本小节只是简单的对数组中的一个元素进行操作,并进行了简单的测试。
更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。