实现方法(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常用的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)