如何获取list中所有元素的索引

如何获取list中所有元素的索引,第1张

API是没有这种方法的。

思路一:取到之后把该索引的内容替换掉 然后再次取索引 一直到 -1

思路二:遍历list get(index)取值 与 你要去的值判断 相等则存储起来

判断完后即可得到你要的了。

list计算机专业术语,编辑表, 一览表; 明细表; 目录; 名单。

在计算机领域指序列。在编程语言中List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。

list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。list 以模板方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料型态

C#的List为泛型集合,所属命名空间:

SystemCollectionsGeneric     

public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口。 泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

一般用法如下:

1、  List的基础、常用方法,声明:

List<T> mList = new List<T>();  //T为列表中元素类型,现在以string类型作为例子

List<string> mList = new List<string>(); 

List<T> testList =new List<T> (IEnumerable<T> collection);//以一个集合作为参数创建List string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };

List<string> testList = new List<string>(temArr);

2、添加元素:

List Add(T item);//添加一个元素

ListAdd("John");

List AddRange(IEnumerable<T> collection);//添加一组元素

string[] temArr = { "Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku",  "Locu" };

ListAddRange(temArr);

ListInsert(int index, T item);//在index位置添加一个元素

ListInsert(1, "Hei");

3、 遍历List中元素:

foreach (T element in mList)  T的类型与mList声明时一样

  {

       ConsoleWriteLine(element);

  }

foreach (string s in mList)

{

    ConsoleWriteLine(s);

}

4、删除元素:

List Remove(T item);//删除一个值

mListRemove("Hunter");

List RemoveAt(int index);//删除下标为index的元素

mListRemoveAt(0);

List RemoveRange(int index, int count);//从下标index开始,删除count个元素

mListRemoveRange(3, 2);

import javautilArrayList;

import javautilHashSet;

import javautilList;

import javautilSet;

public class Test {

public static void main(String args[]) {

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

private static final long serialVersionUID = -6469181946992000438L;

{

thisadd("aaa");

thisadd("bbb");

thisadd("ccc");

thisadd("aaa");

thisadd("bbb");

thisadd("ddd");

thisadd("eee");

}

};

Set<String> set = new HashSet<String>();

for (String ls : list) {

if (setcontains(ls)) {

Systemoutprintln("重复值:" + ls);

}

setadd(ls);

}

}

}

API是没有这种方法的

思路一:取到之后把该索引的内容替换掉 然后再次取索引 一直到 -1

思路二:遍历list get(index)取值 与 你要去的值判断 相等则存储起来

判断完后即可得到你要的了

list<CString>::iterator

itr=m_listbegin();

你这个迭代器的定义就是来干这个的。

通过如下 *** 作遍历list所有元素:

list<CString>::iterator

itr=m_listbegin();

for

(

;

itr

!=

m_listend();

itr++)

{

CString

str

=

itr;

//

下面执行你的 *** 作

}

迭代器就相对于个指针,就是外国人喜欢故弄玄虚而言。别被他们忽悠住了

可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务。

list1 = [1,2,3,4,5]

list2 = [4,5,6,7,8]

print [l for l in list1 if l in list2]

# [4,5]

如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法。首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素。

set1 = set(list1)

set2 = set(list2)

print set1 & set 2

# {4,5}

//先用contains判断是否有该元素

if(list集合contains(对象)){

list集合indexOf(对象名);

}

因为List 是一个元素有序的、可以重复、可以为 null 的集合;

所以;

indexOf可以获取元素出现的第一个位置的引索,与之相反的是lastlndexOf获取元素最后出现的位置引索,如果集合中没有该元素则返回-1,其原理都是利用equals方法配合历遍来判断。

扩展资料:

C++中list用法详解

1list中的构造函数:

list() 声明一个空列表;

list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的

list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的

list(n,val) 声明一个和上面一样的列表

list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素

以上就是关于如何获取list中所有元素的索引全部的内容,包括:如何获取list中所有元素的索引、c# 如何获取List中的元素,其索引大于int.MaxValue、java中如何获取list里面相同的元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9603074.html

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

发表评论

登录后才能评论

评论列表(0条)

保存