`

Java中的集合-List

阅读更多

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-Java集合体系-List-Set

    理解并熟练运用Java集合体系中的List、Set、Map接口及其实现类,对于日常开发和面试来说至关重要,因为它们是许多Java框架和库的基础。在实际项目中,根据需求选择合适的集合类型可以提高代码的效率和可维护性。在...

    精通java集合框架--List,Set..

    ### 精通Java集合框架——List, Set, Map #### 概述 Java集合框架是一种高度抽象且灵活的数据组织工具,它通过一系列接口来定义不同类型的数据容器,并提供了丰富的操作这些容器的方法。本文将深入探讨Java集合...

    JSP应用开发-Java集合类-List接口.pptx

    Java集合类——List接口 Java中的集合类是用来存放对象的,相当于一个容器,里面包容着一组对象。Java API提供的集合类位于java.util包内。Java中的集合类可以分为两类,一类是数组,另一类是集合。数组也是容器,...

    Java-Mail-list.zip_JAVA list通讯录

    1. **Java集合框架**:Java集合框架是Java库中的核心部分,提供了一组高效且灵活的数据结构,如List、Set和Map。在这个通讯录项目中,最可能使用的是List接口,因为它允许我们保持元素的顺序,并可以有重复元素。 2...

    java基础 集合-21-对象的一对多与多对多

    在Java集合框架中,主要的接口有List、Set和Map。List接口代表有序的集合,允许重复元素,如ArrayList和LinkedList。Set接口不允许重复元素,如HashSet和TreeSet。Map接口存储键值对,如HashMap和TreeMap。在处理...

    java基础 集合-22-迭代器设计模式

    这意味着每个集合都可以被迭代,这符合Java集合框架的设计原则。 3. **迭代器的分类** - **正向迭代器**:按照元素在集合中的自然顺序进行遍历,大多数集合类默认提供这种迭代方式。 - **反向迭代器**:从集合的...

    java集合类list-set-map.doc

    java集合类list-set-map.doc

    Java基础----集合类汇总

    本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...

    【死磕Java集合】-集合源码分析.pdf

    Java集合框架是Java语言中一个非常重要的组件,提供了多种数据结构和算法来存储和操作数据。在Java集合框架中,LinkedList、ArrayList、HashMap、TreeMap等都是非常常用的数据结构。本文将对Java集合框架的源码进行...

    Java-Interview-超全集合github上评分最高的jiva面试题

    通过学习和复习这些知识点,并结合"Java-Interview-超全集合github上评分最高的jiva面试题"中的题目进行实战演练,可以有效地提升Java开发者在面试中的竞争力,为成功获得理想职位打下坚实基础。在面试准备过程中,...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,适用于不同的场景。此外,匿名类的概念在Java中用于简化代码结构,...

    关于java基础集合-定义及练习资料

    Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一组高效且灵活的数据结构。本资料主要关注Java集合的基础定义以及相关的练习,帮助开发者深入理解和掌握这些概念。 首先,我们来详细...

    java版list-map实现 树结构 父子结构 通俗易懂

    此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!

    易语言仿java集合 list map源码

    本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...

    java集合 collection-list-LinkedList详解

    在Java集合框架中,`List`接口是`Collection`接口的一个子接口,它代表了有序的元素列表,其中元素可以重复,并且可以通过索引来访问。`LinkedList`类是实现`List`接口的一个具体类,它提供了链表结构的数据存储方式...

    Java-list-set-map.zip_Java list

    本资料“Java list set map.zip”专注于讲解这些接口及其相关实现,帮助开发者深入理解Java集合类的使用。 首先,`List`接口是有序的集合,允许元素重复。它提供了按索引访问元素的能力,类似于数组。`ArrayList`和...

    Java-knowledge-points-list.rar_Knowledge

    这份"Java-knowledge-points-list.rar_Knowledge"压缩包中包含的"Java knowledge points list.pdf"文档,很可能是对Java编程语言的关键概念、语法和技术进行的详细梳理。以下是对Java主要知识点的概述: 1. **基础...

    mood321#Java#集合目录1

    合集部分目录Java集合学习-listArrayList学习Java集合学习-list- LinkesList学习Java集合学习-listJava集合学习-m

    java实验--求一个集合的子集

    java实验--求一个集合的子集,非递归实现。

Global site tag (gtag.js) - Google Analytics