List
1.实现比较
名称 | 存储 | 优势 | 劣势 |
arrayList | 实质是数组 | 便于查询 | 数据变更,需移动插入或删除位置后方的元素 |
linkedList | 链式存储 | 便于修改 | 查询时逐个Node进行next元素查找比较 |
数组存储使用连续的存储空间进行存储
2.subList
import java.util.ArrayList;
import java.util.List;
public class ListTest {
/**
* @param args
*/
public static void main(String[] args) {
List<String> l = new ArrayList<String>();
l.add("1");
l.add("2");
l.add("3");
l.add("4");
l.add("5");
List<String> s = l.subList(1, 3);
s.set(1, "111");
System.out.println(l);
}
}
输出:
[1, 2, 111, 4, 5]
结论:
取出集合中的子集合,实质上并没有创建新的集合,即对子集合的修改会影响到原集合。
3.Collection 与 Array的转换
List<String> l = new ArrayList<String>();
l.add("1");
l.add("2");
l.add("3");
l.add("4");
l.add("5");
String [] a = new String[l.size()];
l.toArray(a);
System.out.println(String.valueOf(a));
说明:
若数组的大小大于list.size ,则使用当前数组进行数据的返回值;反之,新创建数据返回
为避免内存消耗,新建数据时指明大小与list相同
String str = "1,2,3,4,5,6,7";
List<String> ls = Arrays.asList(str.split(","));
List<String> lsn = new ArrayList<String>(ls.size());
lsn.addAll(ls);
System.out.println(lsn);
说明:
通过asList方法得到的List 并非ArrayList,不支持 add/remove等方法的使用,否则会提示异常——“不支持方法调用”
// asList实质调用如下方法
// 下面的ArrayList非上述ArrayList,而是一个内部类,由于其继承AbstraceList类
// 所以相应的list的方法,也可以调用,编译时不会报错,但运行时会出现异常
// 调用 add /remove 方法时,会提示不支持此方法的调用
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
private static final long serialVersionUID = -2764017481108945198L;
private final E[] a;
ArrayList(E[] array) {
if (array==null)
throw new NullPointerException();
a = array;
}
}
解决方法是:套用一层,再将此list转换为真正的ArrayList
分享到:
相关推荐
在编程领域,特别是涉及到数据操作的时候,`list` 是一种常用的数据结构,它在Python、JavaScript等语言中广泛使用。`list to list` 操作通常指的是将一个列表(list)的内容移动到另一个列表中,这可能涉及到列表的...
在C#编程中,`List<T>`是.NET框架中常用的一种动态数组,它属于泛型集合,提供了丰富的功能,使得在处理一系列数据时更加灵活高效。`List<T>`类是`System.Collections.Generic`命名空间的一部分,它实现了`IList<T>`...
### Scala的List类方法整合 在Scala编程语言中,`List` 类是处理有序集合的一种常见方式。本文将详细介绍 `List` 类中的多种方法及其用途,帮助开发者更好地理解和使用这些功能。 #### 1. `def + (elem: A): List...
在Python编程语言中,列表(list)是一种非常重要的数据结构,它可以存储任意类型的对象,包括数字、字符串,甚至是其他列表。当我们谈论“list嵌套list”时,这意味着在一个列表内部包含了一个或多个列表,这样的...
在Delphi编程环境中,`TList` 是一个基础且重要的数据结构,用于存储动态数组。在 Delphi 的 VCL(Visual Component Library)框架中,`TList` 类提供了方便的方法来管理和操作对象列表。本教程将通过一个DEMO示例,...
本知识点重点讲解将List转换为List的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List转换为List 在Java中,Bean通常指的是...