1、List接口继承了Collection接口。List中的元素是按顺序存放的,可以有重复元素。
- ArrayList类:实现数组的动态操作,线程不安全,执行效率比Vector高
- Vector类:实现动态数组线程安全向量类
- Stack类:表示后进先出的对象栈,是Vector类的子类,
2、构造方法
Arraylist类的构造方法:
public ArrayList();//构造一个初始容量为10的列表
public ArrayList(Collection c);//构造一个包含指定集合Collection对象元素的列表
public ArrayList(int initialCapacity);//构造一个初始容量为指定值initialCapacity的列表
由于ArrayList是动态数组,它可以自动地进行数组的扩容。如果元素的个数超过了ArrayList的容量,它就会将当前的容量扩大1倍,并将原来的元素放到这个扩容以后的新的数组中。为了提高ArrayList的使用效率,可以使用trimToSize方法将ArrayList的容量调整为当前的容量大小,以便释放多余的空间。
示例代码:
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
public class ArrayListTest{
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.trimToSize();
System.out.println("al size:"+al.size());
TreeSet tr=new TreeSet();
tr.add("ta");
tr.add("tb");
ArrayList al1 = new ArrayList(tr);
al1.addAll(al);
System.out.println("al1 size:"+al1.size());
for(int i=0;i<al1.size();i++)
System.out.println("al1["+i+"]:"+al1.get(i));
Iterator it = al1.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
执行结果:
C:\javastudy>java ArrayListTest
al size:4
al1 size:6
al1[0]:ta
al1[1]:tb
al1[2]:a
al1[3]:b
al1[4]:c
al1[5]:d
ta
tb
a
b
c
d
C:\javastudy>
Vector类比ArrayList类多了一种构造方法:
public Vector(int initialCapacity, int capaciyIncrement)//构造具有指定的初始容量和容量增量的向量
Stack类比Vector类多了5个方法:
pulic E push(Object item)//将元素引用压入栈顶
public E pop()//删除栈顶元素
public E peek()//取得栈顶元素但不删除它
public boolean empty()//判断栈是否为空
public int search(Object o)//返回Object对象在栈中所处的位置。其中栈顶元素的位置为1,以后依次递增1。如果对象不在栈中则返回-1
示例代码:
import java.util.Stack;
public class StackTest{
public static void main(String[] args){
Stack st= new Stack();
st.push("blue");
st.push("green");
st.push("red");
st.push("white");
System.out.println(st);
st.pop();
st.pop();
System.out.println(st);
if(!st.empty())
System.out.println(st.peek());
int i = st.search("green");
System.out.println(i);
System.out.println(st.search("blue"));
for(int j=0;j<st.size();j++)
System.out.println(st.get(j));
}
}
执行结果:
C:\javastudy>java StackTest
[blue, green, red, white]
[blue, green]
green
1
2
blue
green
C:\javastudy>
可以看出,Stack既可以当做Vector使用,也可以当做Stack栈来使用。
分享到:
相关推荐
理解并熟练运用Java集合体系中的List、Set、Map接口及其实现类,对于日常开发和面试来说至关重要,因为它们是许多Java框架和库的基础。在实际项目中,根据需求选择合适的集合类型可以提高代码的效率和可维护性。在...
### 精通Java集合框架——List, Set, Map #### 概述 Java集合框架是一种高度抽象且灵活的数据组织工具,它通过一系列接口来定义不同类型的数据容器,并提供了丰富的操作这些容器的方法。本文将深入探讨Java集合...
Java集合类——List接口 Java中的集合类是用来存放对象的,相当于一个容器,里面包容着一组对象。Java API提供的集合类位于java.util包内。Java中的集合类可以分为两类,一类是数组,另一类是集合。数组也是容器,...
1. **Java集合框架**:Java集合框架是Java库中的核心部分,提供了一组高效且灵活的数据结构,如List、Set和Map。在这个通讯录项目中,最可能使用的是List接口,因为它允许我们保持元素的顺序,并可以有重复元素。 2...
在Java集合框架中,主要的接口有List、Set和Map。List接口代表有序的集合,允许重复元素,如ArrayList和LinkedList。Set接口不允许重复元素,如HashSet和TreeSet。Map接口存储键值对,如HashMap和TreeMap。在处理...
这意味着每个集合都可以被迭代,这符合Java集合框架的设计原则。 3. **迭代器的分类** - **正向迭代器**:按照元素在集合中的自然顺序进行遍历,大多数集合类默认提供这种迭代方式。 - **反向迭代器**:从集合的...
java集合类list-set-map.doc
本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...
Java集合框架是Java语言中一个非常重要的组件,提供了多种数据结构和算法来存储和操作数据。在Java集合框架中,LinkedList、ArrayList、HashMap、TreeMap等都是非常常用的数据结构。本文将对Java集合框架的源码进行...
通过学习和复习这些知识点,并结合"Java-Interview-超全集合github上评分最高的jiva面试题"中的题目进行实战演练,可以有效地提升Java开发者在面试中的竞争力,为成功获得理想职位打下坚实基础。在面试准备过程中,...
在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,适用于不同的场景。此外,匿名类的概念在Java中用于简化代码结构,...
Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一组高效且灵活的数据结构。本资料主要关注Java集合的基础定义以及相关的练习,帮助开发者深入理解和掌握这些概念。 首先,我们来详细...
此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!
本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...
在Java集合框架中,`List`接口是`Collection`接口的一个子接口,它代表了有序的元素列表,其中元素可以重复,并且可以通过索引来访问。`LinkedList`类是实现`List`接口的一个具体类,它提供了链表结构的数据存储方式...
本资料“Java list set map.zip”专注于讲解这些接口及其相关实现,帮助开发者深入理解Java集合类的使用。 首先,`List`接口是有序的集合,允许元素重复。它提供了按索引访问元素的能力,类似于数组。`ArrayList`和...
这份"Java-knowledge-points-list.rar_Knowledge"压缩包中包含的"Java knowledge points list.pdf"文档,很可能是对Java编程语言的关键概念、语法和技术进行的详细梳理。以下是对Java主要知识点的概述: 1. **基础...
合集部分目录Java集合学习-listArrayList学习Java集合学习-list- LinkesList学习Java集合学习-listJava集合学习-m
java实验--求一个集合的子集,非递归实现。