JAVA如何实现在一个集合中插入一个元素,并返回插入的下标

JAVA如何实现在一个集合中插入一个元素,并返回插入的下标,第1张

如果是无序的集合, 那么不存在位置这个说法

如果是有序的集合,

以ArrayList为例, 那么插入元素,没有指定位置,那么集合长度-1 .就是插入的下标

如果指定了位置,那么指定的位置就是插入的下标啊 ,如果指定位置大于集合长度,会抛出异常

参考代码

import java.util.ArrayList

public class ListDemo {

public static void main(String[] args) {

ArrayList<String> list = new ArrayList<String>()

//自带的添加元素的方法

list.add("天涯") 

list.add("明月")

list.add(1,"晴天")

//使用自定义函数 进行添加元素

int a = myAdd(list, "令狐冲")

System.out.println(a)

int b = myAdd(list,2,"郭芙蓉")

System.out.println(b)

System.out.println(list)

}

//向集合尾部插入元素

private static int myAdd(ArrayList<String> list, String e) {

list.add(e)//向尾部加入一个元素

return list.size() - 1//返回最后一个元素的下标即可

}

//向集合指定位置插入元素

private static int myAdd(ArrayList<String> list, int index, String e) {

list.add(index, e)//向指定位置加入1个元素

return index//返回指定的位置

}

}

测试结果

3

2

[天涯, 晴天, 郭芙蓉, 明月, 令狐冲]

没有此函数

可以如下解决:

搜索数组元素,

for(iii)if(cA[i]=='X')return i//i就是下标

或用指针

for(iii)if(*cA[i]++ == 'X')return i

或用指针运算

pcA是元素的位置指针

i= (pcA - cA)/ sizeof( (int) or (float) 等数组数据类型) )

一定要用模板吗?

对于结构体元素查找,可能会用到根据其中几个元素来比较,或者所有元素来比较

所以最好可以专门写函数来查找

比如

int find(struct stu *array, int value)

{

int i

for(i=0i<lengthi++)//这个length可以通过全局变量 也可以改成从参数传过来

if(array[i].m == value) break

return i

}

这个是查找m的

如果对于结构体查找的元素是固定的,比如值查找m,或者只有当所有元素值相等时才算找到

可以重载 *** 作符==


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11846450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存