List为移除数据提供了两个remove的方法:
1. 按照下标索引删除
2. 按照值删除,删除第一个符合的值对象。
public interface List<E> extends Collection<E> {
//省略其它方法,只保留remove方法
/**
* Removes the first occurrence of the specified element from this list,
* if it is present (optional operation). If this list does not contain
* the element, it is unchanged. More formally, removes the element with
* the lowest index <tt>i</tt> such that
* <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>
* (if such an element exists). Returns <tt>true</tt> if this list
* contained the specified element (or equivalently, if this list changed
* as a result of the call).
*
* @param o element to be removed from this list, if present
* @return <tt>true</tt> if this list contained the specified element
* @throws ClassCastException if the type of the specified element
* is incompatible with this list (optional)
* @throws NullPointerException if the specified element is null and this
* list does not permit null elements (optional)
* @throws UnsupportedOperationException if the <tt>remove</tt> operation
* is not supported by this list
*/
boolean remove(Object o);
/**
* Removes the element at the specified position in this list (optional
* operation). Shifts any subsequent elements to the left (subtracts one
* from their indices). Returns the element that was removed from the
* list.
*
* @param index the index of the element to be removed
* @return the element previously at the specified position
* @throws UnsupportedOperationException if the <tt>remove</tt> operation
* is not supported by this list
* @throws IndexOutOfBoundsException if the index is out of range
* (<tt>index < 0 || index >= size()</tt>)
*/
E remove(int index);
}
当一个List存储的是整形数据的时候,需要注意下,以保证是按值删除数据或者按照下标索引删除数据。
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(20);
list.add(6);
list.add(5);
list.add(1);
/**
* 打印List中的值 --> [1, 3, 20, 6, 5, 1]
*/
System.out.println(list);
/**
* 移动index =1,也就是第二个整数,移除的是3,而不是1。
* 输出List中的值得-->[1, 20, 6, 5, 1]
*/
list.remove(1);
System.out.println(list);
/**
* 移动第一个值为1的整数。
* 输出List中的值得-->[20, 6, 5, 1]
*/
list.remove(Integer.valueOf(1));
System.out.println(list);
}
}
删除整数可以用Integer.valueOf(value)或者 new Integer(value).
最好还是用Integer.valueOf(value), 因为Integer把-128~127的整数放入了cache,cache中取得的值不需要创建新的对象。
public final class Integer extends Number implements Comparable<Integer> {
//其它变量和方法省略
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
/**
* Returns a <tt>Integer</tt> instance representing the specified
* <tt>int</tt> value.
* If a new <tt>Integer</tt> instance is not required, this method
* should generally be used in preference to the constructor
* {@link #Integer(int)}, as this method is likely to yield
* significantly better space and time performance by caching
* frequently requested values.
*
* @param i an <code>int</code> value.
* @return a <tt>Integer</tt> instance representing <tt>i</tt>.
* @since 1.5
*/
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
}
分享到:
相关推荐
这段代码首先定义了链表的结构体`Node`,以及`ElemType`类型为`int`,这意味着链表将用于存储整数值。接下来,代码提供了两个关键函数:`newlist()`用于创建一个新的链表,而`dellist()`则实现了删除链表中指定结点...
在Python编程语言中,列表(List)是一种常用的数据结构,用于存储有序的元素集合,它可以包含不同类型的元素,如整数、浮点数、字符串甚至其他列表。在处理列表时,有时我们需要根据不同的需求来删除其中的元素。...
接着,删除所有的偶数,再次查找这些偶数以验证它们已被正确删除。 总的来说,C++实现的跳表结合了概率和分层的思想,能够在保持较低的平均时间复杂度的同时,提供良好的性能表现。通过精心设计的测试程序,我们...
例如,可以创建一个程序,让用户输入一系列数字并存储到`List<int>`中,然后计算它们的平均值;或者创建一个字典,用于存储书籍信息(书名作为键,出版年份作为值),并实现查找特定书籍的年份功能。 总之,理解并...
在上述代码中,我们创建了一个`ArrayList`实例`arrlist`,并使用`Add`方法向列表中添加了多个元素,包括字符串和整数。通过`Remove`和`RemoveAt`方法,我们可以删除指定元素或索引处的元素,而`Insert`方法允许在...
程序中提供了两个主要函数:`CreatList_L`用于创建链表,`ListInsert_L`和`ListDelete_L`分别用于在链表中插入和删除元素。 `CreatList_L`函数接受一个指针`L`和一个整数`n`作为参数,用于创建一个包含`n`个元素的...
在链表中删除重复的结点,需要遍历链表,一旦发现重复的值,就删除该节点,确保最终链表中的所有节点值都是唯一的。 删除所有数据值为偶数的节点,需要检查每个节点的值,如果值为偶数,则将其从链表中移除。 将...
`COLORREF` 是Windows API中表示颜色的类型,它是一个无符号32位整数,其中低24位表示RGB值。 2. `SetAllItemColor(DWORD iItem, COLORREF TextColor, COLORREF TextBkColor)`:这个函数与 `SetItemColor` 类似,但...
5. 最后,遍历链表,将链表中的每个节点值转换为字符串并连接起来,打印出完整的乘积。 这个实现可能不是最高效的,但其优点在于易于理解和实现,特别适合教学和学习目的。对于实际应用,如果需要处理大量大整数...
可以传入字符串和整数值作为参数,分别对应列表项的文本和图像索引。例如: ```cpp int index = m_listCtrl.InsertItem(LVIF_TEXT, 0, _T("新项")); m_listCtrl.SetItemText(index, 1, _T("附加信息")); ``` 2. **...
`deleteElem`函数负责删除链表中所有值等于`elem`的节点。它从头节点开始遍历,当遇到匹配的元素时,删除该节点并更新指针。`flag`变量用于记录删除的节点数量,当遍历到链表末尾且仍有匹配元素时,会删除最后一个...
初始化一个`LinkedList<int>`,并将0到29的整数添加到链表中。 ```csharp LinkedList<int> list = new LinkedList(); for (int i = 0; i ; i++) { list.AddLast(i); } ``` 2. **遍历并修改链表**: 当遍历链表...
在这个场景中,顺序表(Sequential List)是一种简单但有效的实现方式。 顺序表是一种线性数据结构,它将元素存储在连续的内存位置中,可以通过索引来访问和操作这些元素。在Java中,一个基本的顺序表可以由数组...
5. 查找和定位:根据用户提供的值,程序查找线性表中是否存在该值,并返回其位置。如果不存在,则返回0。 6. 主函数与算法调试:编写一个主函数来调用上述操作,并进行算法的调试,确保所有操作都能正确执行。 ...
13. 关于Hashtable,正确的说法是Remove()方法将删除Hashtable中的键值对。 在C#中,Hashtable提供了Remove()方法来删除键值对。 14. 关于struct和class,正确的说法是struct是值类型,而class是引用类型。 在C#...
链表的每个节点包含一个整数值和指向下一个节点的指针。链表的头节点指向第一个非零元素,尾节点的指针为NULL。 2. 查询与删除: 输入任意整数,检查链表中是否存在该数。如果存在,删除该节点,并输出删除前后的...
首先,`ListInsert_Dul`接受三个参数:一个指向双向链表的引用`L`,一个整数`i`表示要插入的位置,以及要插入的新结点的值`e`。函数的目标是在链表的第`i`个位置插入新结点。 1. `if(!(p=GetElem_DuL(L,i))) ...
// 实现删除整数节点的逻辑 } bool search(int target) override { // 实现查找整数的逻辑 } void print() const override { std::cout ; } private: int value; }; ``` 对于字符串节点,可以创建类似...
这个“CList.rar_CList_CList mfc_add_cli_list control”压缩包显然包含了与CList类相关的资料,特别是关于在MFC环境中如何添加、删除和查找元素的操作。 CList是MFC提供的一个双向链表模板类,它允许程序员存储和...