C#中的LinkedList怎么给指定下标的元素赋值??

C#中的LinkedList怎么给指定下标的元素赋值??,第1张

实现方法(1)将LinkList<T>转换成数组;(2)对数组指定下标元素赋值;(3)再将数组转换成LinkList<T>。代码如下:

// 建立集合LinkList<int>

LinkedList<int> linkList = new LinkedList<int>()

// 添加元素 

LinkedListNode<int> node

node =  linkList.AddFirst(1)

node = linkList.AddAfter(node, 2)

node = linkList.AddAfter(node, 3)

node = linkList.AddAfter(node, 4)

node = linkList.AddAfter(node, 5)

// 将“下标为2”元素值修改为300(原值=3)

// (1)将linkLit转换成 int[]

int[] a = new int[linkList.Count]

linkList.CopyTo(a, 0)

// (2)对数组指定下标元素赋值

a[2] = 300

// (3)再数组转换成LinkList<int>

 linkList = new LinkedList<int>(a)

泛型集合LinkedList<T>实现双向链表,LinkedList<T>本身不支持通过下标存取链表中的元素。

List<E>([]内的内容可省略),与数组类似:

实例化:List[<数据类型>] list = new ArrayList[<数据类型>]()

获得集合内元素个数:list.size()

添加元素:

默认添加:list.add(e)

指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e)

删除元素:

返回是否删除:list.remove(e)

直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index)

替换元素(替换掉指定下标的元素):list.set(index,e)

取出元素:list.get(index)

清空集合:list.clear()

判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e)

对比两个集合中的所有元素:

两个对象一定相等:list.equals(list2)

两个对象不一定相等:list.hashCode() == list2.hashCode()

(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)

获得元素下标:

元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e)

元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e)

判断集合是否为空(空则返回true,非空则返回false):list.isEmpty()

返回Iterator集合对象:list.iterator()

将集合转换为字符串:list.toString()

截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex)

将集合转换为数组:

默认类型:list.toArray()

指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects)

以上为List常用的方法。


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

原文地址: http://outofmemory.cn/bake/11882812.html

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

发表评论

登录后才能评论

评论列表(0条)

保存