API是没有这种方法的。
思路一:取到之后把该索引的内容替换掉 然后再次取索引 一直到 -1
思路二:遍历list get(index)取值 与 你要去的值判断 相等则存储起来
判断完后即可得到你要的了。
list计算机专业术语,编辑表, 一览表; 明细表; 目录; 名单。
在计算机领域指序列。在编程语言中List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。
list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。list 以模板方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料型态
List<A> list = new LinkedList<A>
A a = listget(14);
java api:
get(int index)返回列表中指定位置的元素。
参数:
index - 要返回的元素的索引
返回:
列表中指定位置的元素
抛出:
IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= size())
# 假设list1是一个字符串列表
list1 = ["A", "B", "C", "A", "D", "E", "A"]
# 定义一个空列表来存储出现"A"的位置
positions = []
# 遍历list1,使用enumerate函数获取索引和元素
for index, element in enumerate(list1):
# 如果元素是"A",则将索引添加到positions列表中
if element == "A":
positionsappend(index)
# 打印positions列表
print(positions)
按以下代码可获取到list数据:
package comexamplesdtgsdsw;
import javaioIOException;
import javautilArrayList;
import javautilHashMap;
import javautilList;
import javautilMap;
import orgksoap2SoapEnvelope;
import orgksoap2SoapFault;
import orgksoap2serializationSoapObject;
import orgksoap2serializationSoapSerializationEnvelope;
import orgksoap2transport>
List 接口继承了 Collection 接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的 *** 作。
(1) 面向位置的 *** 作包括插入某个元素或 Collection 的功能,还包括获取、除去或更改元素的功能。在 List 中搜索元素可以从列表的头部或尾部开始,如果找到元素,还将报告元素所在的位置 :
void add(int index, Object element): 在指定位置index上添加元素element
boolean addAll(int index, Collection c): 将集合c的所有元素添加到指定位置index
Object get(int index): 返回List中指定位置的元素
int indexOf(Object o): 返回第一个出现元素o的位置,否则返回-1
int lastIndexOf(Object o) :返回最后一个出现元素o的位置,否则返回-1
Object remove(int index) :删除指定位置上的元素
Object set(int index, Object element) :用元素element取代位置index上的元素,并且返回旧的元素
(2) List 接口不但以位置序列迭代的遍历整个列表,还能处理集合的子集:
ListIterator listIterator() : 返回一个列表迭代器,用来访问列表中的元素
ListIterator listIterator(int index) : 返回一个列表迭代器,用来从指定位置index开始访问列表中的元素
List subList(int fromIndex, int toIndex) :返回从指定位置fromIndex(包含)到toIndex(不包含)范围中各个元素的列表视图
“对子列表的更改(如 add()、remove() 和 set() 调用)对底层 List 也有影响。”
21ListIterator接口
ListIterator 接口继承 Iterator 接口以支持添加或更改底层集合中的元素,还支持双向访问。ListIterator没有当前位置,光标位于调用previous和next方法返回的值之间。一个长度为n的列表,有n+1个有效索引值:
(1) void add(Object o): 将对象o添加到当前位置的前面
void set(Object o): 用对象o替代next或previous方法访问的上一个元素。如果上次调用后列表结构被修改了,那么将抛出IllegalStateException异常。
(2) boolean hasPrevious(): 判断向后迭代时是否有元素可访问
Object previous():返回上一个对象
int nextIndex(): 返回下次调用next方法时将返回的元素的索引
int previousIndex(): 返回下次调用previous方法时将返回的元素的索引
“正常情况下,不用ListIterator改变某次遍历集合元素的方向 — 向前或者向后。虽然在技术上可以实现,但previous() 后立刻调用next(),返回的是同一个元素。把调用 next()和previous()的顺序颠倒一下,结果相同。”
“我们还需要稍微再解释一下 add() *** 作。添加一个元素会导致新元素立刻被添加到隐式光标的前面。因此,添加元素后调用 previous() 会返回新元素,而调用 next() 则不起作用,返回添加 *** 作之前的下一个元素。”
22AbstractList和AbstractSequentialList抽象类
有两个抽象的 List 实现类:AbstractList 和 AbstractSequentialList。像 AbstractSet 类一样,它们覆盖了 equals() 和 hashCode() 方法以确保两个相等的集合返回相同的哈希码。若两个列表大小相等且包含顺序相同的相同元素,则这两个列表相等。这里的 hashCode() 实现在 List 接口定义中指定,而在这里实现。
除了equals()和hashCode(),AbstractList和AbstractSequentialList实现了其余 List 方法的一部分。因为数据的随机访问和顺序访问是分别实现的,使得具体列表实现的创建更为容易。需要定义的一套方法取决于您希望支持的行为。您永远不必亲自提供的是 iterator方法的实现。
23 LinkedList类和ArrayList类
在“集合框架”中有两种常规的 List 实现:ArrayList 和 LinkedList。使用两种 List 实现的哪一种取决于您特定的需要。如果要支持随机访问,而不必在除尾部的任何位置插入或除去元素,那么,ArrayList 提供了可选的集合。但如果,您要频繁的从列表的中间位置添加和除去元素,而只要顺序的访问列表元素,那么,LinkedList 实现更好。
“ArrayList 和 LinkedList 都实现 Cloneable 接口,都提供了两个构造函数,一个无参的,一个接受另一个Collection”
231 LinkedList类
LinkedList类添加了一些处理列表两端元素的方法。
(1) void addFirst(Object o): 将对象o添加到列表的开头
void addLast(Object o):将对象o添加到列表的结尾
(2) Object getFirst(): 返回列表开头的元素
Object getLast(): 返回列表结尾的元素
(3) Object removeFirst(): 删除并且返回列表开头的元素
Object removeLast():删除并且返回列表结尾的元素
(4) LinkedList(): 构建一个空的链接列表
LinkedList(Collection c): 构建一个链接列表,并且添加集合c的所有元素
“使用这些新方法,您就可以轻松的把 LinkedList 当作一个堆栈、队列或其它面向端点的数据结构。”
232 ArrayList类
ArrayList类封装了一个动态再分配的Object[]数组。每个ArrayList对象有一个capacity。这个capacity表示存储列表中元素的数组的容量。当元素添加到ArrayList时,它的capacity在常量时间内自动增加。
在向一个ArrayList对象添加大量元素的程序中,可使用ensureCapacity方法增加capacity。这可以减少增加重分配的数量。
(1) void ensureCapacity(int minCapacity): 将ArrayList对象容量增加minCapacity
(2) void trimToSize(): 整理ArrayList对象容量为列表当前大小。程序可使用这个 *** 作减少ArrayList对象存储空间。
2321 RandomAccess接口
一个特征接口。该接口没有任何方法,不过你可以使用该接口来测试某个集合是否支持有效的随机访问。ArrayList和Vector类用于实现该接口。
代码如下:list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]L1=len(list1)
#列表list1的长度list2=list(set(list1))
#可以用set,直接去掉重复的元素list2sort(reverse=False)
#将列表由小到大排序L2=len(list2)
#列表list2的长度print('集合:'+str(list1))for m in range(L2): X=set()
#设定一个空的集合,用来存放这个元素的所在的位置 start=list1index(list2[m])
for n in range(L1):
stop=L1
if list2[m] in tuple(list1)[start:stop]:
a=list1index(list2[m],start,stop)
Xadd(a) start=start+1 print('元素:'+str(list2[m])+',
一共有'+str(len(X))+'个,在列表位置集合为:'+str(X))。
fileListBinarySearch(aFile)
for(int i=0;i<fileListCount;i++)
{
ConsoleWriteLine(i);
}
List <string> fileList = new List<string>();
foreach (string aFile in fileList)
{
int idx= fileListIndexOf(aFile);//获取当前aFile的索引
ConsoleWriteLine(idx);//输出度aFile的索引
}
ConsoleReadLine();//屏幕停留
扩展资料:
字符数组的定义方式与一维数组、二维数组的定义方式类似,只不过数组的类型是char型。
例如:char s1;
定义了一个元素个数为6、数组名为S的字符数组,该字符数组中可以存放6个字符型数据。
例如:char s2;
定义了一个二维字符数组S,该数组可以存放3x6个字符型数据。
字符数组的初始化,即在声明的时候在后边直接赋值一个字符串。
如:char name[9]="xiaogang";
但是如果在声明语句以外的位置,就无法直接对整个数组直接赋值了,要把strcpy这个函数来实现。
而在这个字符数组中,包含了8个字符数据,即为八个元素,name[i]即为这个字符数组的元素名称,其中i可取0至8。
参考资料来源:百度百科-字符数组元素名称
以上就是关于如何获取list中所有元素的索引全部的内容,包括:如何获取list中所有元素的索引、list可以读取指定位置的元素么是arraylist还是linkedlist、python+找出list1中所有出现“A”字符串的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)