列表的简单实现,只能存储非负整数
List 也属于ADT(抽象数据类型),此处是使用Array类实现List。
另外一个实现请参见LinkedList
设置,取值的方法:
set,get
添加,插入,删除的方法
add ,insert, remove
其他方法
getLength, indexOf
class ArrayList {
private Array array = new Array();
void add(int value) {
array.set(value,array.getLength());
}
void set(int value, int pos) {
assert pos < array.getLength();
array.set(value,pos);
}
int get(int pos) {
assert pos < array.getLength();
return array.get(pos);
}
void insert(int value,int pos) {
assert pos <= array.getLength();
for(int i=array.getLength(); i>pos ; i--) {
array.set(array.get(i-1),i);
}
array.set(value,pos);
}
int remove(int pos) {
int result = array.get(pos);
for(int i=pos+1; i<array.getLength(); i++){
array.set(array.get(i),i-1);
}
array.truncate(array.getLength() - 1);
return result;
}
int getLength() {
return array.getLength();
}
int indexOf(int value) {
for(int i=0; i<array.getLength(); i++) {
if (array.get(i) == value) return i;
}
return -1;
}
}
分享到:
相关推荐
在.NET框架中,ArrayList是System.Collections命名空间下的一种动态数组,它可以存储任意类型的对象,而ListBox控件则是Windows Forms应用程序中常见的用户界面元素,用于显示一个可选项目的列表。本篇将详细介绍...
ArrayList是Java集合框架中的一个重要类,它实现了List接口,用于存储可变大小的有序对象列表。ArrayList通过数组来存储元素,因此可以快速访问任意位置的元素,但插入和删除元素时可能需要移动其他元素,这可能导致...
ArrayList是一个基于对象数组的动态大小的列表,而DataTable则是一个内存中的表格数据结构,通常用于存储和操作关系型数据。将ArrayList转换为DataTable是为了更好地利用DataTable的数据处理功能,例如查询、排序和...
- **容量管理**: 每个`ArrayList`实例都有一个容量,该容量是用于存储列表中元素的数组大小。当元素被添加到`ArrayList`时,其容量会自动增长,以确保至少能容纳当前列表的大小。 - **非同步**: `ArrayList`是非线程...
在.NET Framework中,`ArrayList`实现了`ICollection`和`IList`接口,这意味着它支持列表的基本功能,如添加、删除元素等。 #### 二、如何使用ArrayList? 创建一个`ArrayList`实例非常简单: ```csharp ...
- ArrayList是一个基于数组实现的动态列表,它允许存储任意类型的对象,这得益于C#的类型擦除特性。 - ArrayList内部维护了一个Object类型的数组,当添加或删除元素时,它会自动调整数组大小以适应变化。 2. **...
ArrayList是一个基于数组实现的动态列表,可以存储任何类型的数据,并且支持动态扩容。在本实例中,我们将深入探讨ArrayList的常用操作、特性和注意事项。 一、ArrayList的构造方法 ArrayList提供了几种构造方法,...
- **容量**:ArrayList实例有一个容量,即用于存储列表元素的数组的大小。当添加元素导致容量不足时,ArrayList会自动扩大数组容量。 - **增长策略**:当元素数量达到数组容量极限时,ArrayList会创建一个新的更大...
对于需要按照一定顺序显示列表的情况,可以使用`Sort()`方法对`ArrayList`中的元素进行排序。例如: ```vb mycountries.Sort() ``` 这将按照默认的排序规则(通常是字典顺序)对`ArrayList`中的元素进行排序。 ##...
- **容量(Capacity)**:`ArrayList`实例的容量是指用于存储列表元素的内部数组的大小。创建`ArrayList`时,默认容量通常是10个元素。随着元素的增加,如果当前容量不足以容纳更多的元素,`ArrayList`会自动增加其...
ArrayList是基于数组实现的,它提供了动态增长的能力,允许我们在列表的任何位置进行添加、删除和查找元素等操作。在JavaScript开发中,虽然没有直接对应的ArrayList类,但我们可以借鉴其概念和操作方式来实现类似的...
2. **元素的添加、插入与删除**:`ArrayList` 支持在列表中添加、插入新元素以及删除现有元素。 3. **其他操作**:如排序、反转、查找元素等操作也得到了支持。 #### 详细知识点 ##### 添加元素 - **方法签名**:`...
ArrayList类实现了List接口,提供了可变大小的数组,允许我们在列表的任何位置进行添加、删除和修改元素的操作。这篇ArrayList演示将通过一系列实例帮助我们深入理解ArrayList的用法。 首先,ArrayList的基本操作...
ArrayList提供了一种高效的方式来管理大量的元素,并且提供了迭代器(Iterator)来遍历这些元素,使得我们可以在不暴露底层实现细节的情况下访问和修改列表中的元素。这个资源的目的是通过模拟Java ArrayList的...
如果多个线程同时访问同一个ArrayList实例,并且其中至少有一个线程在结构上修改了列表(指的是改变列表的大小),那么必须在外部保持同步,以避免数据不一致的问题。这种情况下,可以通过诸如Collections....
ArrayList是一种基于数组的列表,它允许我们在不预先知道确切大小的情况下存储和操作一组对象。通过使用ArrayList,我们可以方便地添加、删除和修改元素,而无需像固定大小的数组那样重新分配内存。在Java中,创建...
Java 中数组列表 ArrayList 的使用 ArrayList 是 Java 中的一种动态数组,提供了动态的增加和减少元素的功能,实现了 ICollection 和 IList 接口,灵活地设置数组的大小。下面是 ArrayList 的一些重要的方法和属性...
ListView显示单列ArrayList_demo 在 Android 开发中,ListView 是一种常用的 UI 组件,用于显示列表数据。今天,我们将探索如何使用 ArrayList 将数据显示在 ListView 中。 标题解释 标题 "ListView 显示单列 ...
从 API 的角度来看,`Vector` 和 `ArrayList` 非常相似,两者都提供了基本的列表操作,如添加、删除、获取元素等。然而,它们之间的主要区别在于同步性和一些细节上的处理方式。 **1. 同步性** - **Vector**:是...