`

《Java学习笔记》--对象容器之ArrayList和LinkedList

    博客分类:
  • Java
阅读更多

去SA面试的时候,面试官问我平时用Java的什么数据结构,答曰:Vector。又问:哪有用过其他的的吗?例如List和Map之类的。答曰:甚少。(自己汗一个,没水平)既然不会就要学习啦。

翻开《Java学习笔记》,里面对对象容器的描述不错。

1. ArrayList和LinkedList

ArrayList使用了数组结构实现List的数据。所以ArraryList用来快速定位对象是非常有效率的。但是如果要对ArraryList中间插入或者删除,效率会非常低。

LinkedList使用链表来实现的List。所以跟ArrayList相反,LinkedList对于插入和删除是非常有优势,反之对于快速定位,是LinkedList的弱项。

1)ArrayListDemo

public class ArrayListDemo {
    public static void main(String[] args) {
        
        //用Scanner类,可以轻松获得commander的输入
        Scanner scanner = new Scanner(System.in);
        
        List<String> list = new ArrayList<String>();
        
        //在控制台输入,quit退出
        while(true) {
            System.out.print("Rokey@console# ");
            String input = scanner.next();
            if(input.equals("quit")) {
                break;
            }
            list.add(input);
        }
        
        System.out.print("显示输入:");
        
        //使用5.0的foreach功能对List进行遍历
        for(String s:list) {
            //5.0的类C的输出格式
            System.out.printf("%s ",s);
        }
    }
}

输出:

Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:一二三 三二一 

 

2)用LinkedList实现的一个字符串栈

/**
 *
 * @author Rokey
 * 用LinkedList构建一个字符栈,先进先出
 */
public class StringStack {

    private LinkedList<String> linkList;

    public StringStack() {
        linkList = new LinkedList<String>();
    }

    public void push(String s) {
        //将元素加入链表第一个位置
        linkList.addFirst(s);
    }

    public String pop() {
        //删除链表第一个元素,并返回
        return linkList.removeFirst();
    }

    public String top() {
        //返回链表第一个元素,但并不删除
        return linkList.getFirst();
    }

    public boolean isEmpty() {
        //检查链表是否为空
        return linkList.isEmpty();
    }
}
public class StringStackDemo {

    public static void main(String[] args) {

        //用Scanner类,可以轻松获得commander的输入
        Scanner scanner = new Scanner(System.in);

        StringStack stack = new StringStack();

        //在控制台输入,quit退出
        while (true) {
            System.out.print("Rokey@console# ");
            String input = scanner.next();
            if (input.equals("quit")) {
                break;
            }
            stack.push(input);
        }

        System.out.print("显示输入:");
        //使用5.0的foreach功能对List进行遍历
        
        while(!stack.isEmpty()) {
            //5.0的类C的输出格式
            System.out.printf("%s ", stack.pop());
        }
    }
}

输出:

Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:三二一 一二三 
分享到:
评论

相关推荐

    java学习笔记-html-ssh-js

    【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...

    java笔记-从浅入深的入门学习

    Java集合框架包括数组、ArrayList、LinkedList、HashSet、HashMap等,它们提供了存储和操作对象的有效方式。了解这些容器的特性和适用场景有助于写出更高效的代码。 文件和IO操作是任何编程语言的基础,Java提供了...

    java笔记--

    - **List**:有序、可重复元素的集合,如ArrayList和LinkedList。 - **Set**:无序、不允许重复元素的集合,如HashSet和TreeSet。 - **Map**:键值对存储,如HashMap和TreeMap。 13. **输入输出流** - **File类...

    Java基础尚硅谷宋红康学习笔记

    3. **数组与集合**:数组用于存储固定数量的同类型元素,而集合框架(如ArrayList、LinkedList、HashSet、HashMap等)则提供了动态存储和操作对象的能力。 4. **异常处理**:Java通过try-catch-finally结构进行异常...

    Java学习笔记-个人整理的

    {4.2}\ttfamily java.util.LinkedList}{81}{section.4.2} {4.3}贪吃蛇案例}{82}{section.4.3} {4.4}散列表与HashMap}{83}{section.4.4} {4.4.1}java.util.HashMap}{83}{subsection.4.4.1} {4.5}\ttfamily java....

    良葛格Java学习笔记

    - **容器类**:ArrayList、LinkedList、HashSet、HashMap等,以及它们的特点和使用场景。 - **迭代器**:遍历集合元素的主要方式。 - **泛型**:提高代码的类型安全性,避免类型转换错误。 6. **输入输出流** -...

    java学习比记-北大青鸟时做的笔记,每堂课都有

    【Java学习笔记】北大青鸟课程精华解析 Java是一种广泛使用的高级编程语言,以其平台无关性、面向对象的特性以及强大的安全性能而受到广大开发者喜爱。北大青鸟作为知名的IT培训机构,提供了丰富的Java教学资源,这...

    java学习笔记总结

    这份“java学习笔记总结”涵盖了作者在深入学习Java过程中积累的知识点和实践经验,旨在帮助读者理解和掌握Java的核心概念。 首先,Java的基础部分包括语法、变量、数据类型、运算符和流程控制。Java支持八种基本...

    良葛格Java学习笔记(完整版)

    总的来说,《良葛格Java学习笔记(完整版)》是一份覆盖广泛、深度适宜的Java学习资源,它将帮助你系统地理解和掌握这门强大的编程语言,无论你是正在踏入Java世界的新手,还是希望提升技术水平的开发者,都能从中找到...

    JAVA学习笔记和例子程序值得看看

    这份"JAVA学习笔记和例子程序值得看看"的压缩包显然包含了作者在深入学习Java过程中的重要发现和理解,以及帮助深化概念理解的示例程序。让我们来详细探讨一下可能包含的知识点。 1. **基础语法**:Java的基础包括...

    java学习笔记源代码

    Java学习笔记源代码是针对清华大学出版的《Java学习笔记》一书,配套的 JDK1.5 版本的源码。这些源代码旨在帮助读者深入理解Java编程语言,通过实践来加强理论学习,提高编程技能。Java作为一种广泛使用的高级编程...

    Java JDK 6学习笔记——ppt简体版

    6. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等容器的使用,以及泛型的概念。 7. **异常处理**:理解何时抛出异常,如何捕获和处理异常,以及try-catch-finally语句块的使用。 8. **输入/输出流**:...

    面向对象大胆向前 Java API 实战-Markdown格式的笔记

    Java集合框架是管理对象的容器,如ArrayList、LinkedList、HashMap等。这部分内容会深入解析各种集合类和接口,以及迭代器、泛型和Lambda表达式的使用。 ### 7. 多线程(7:Multithreading-Java API 实战.md) 多...

    [Java学习笔记doc]-javase基本知识

    **Java学习笔记——Java SE基本知识** Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性而闻名。Java Standard Edition(Java SE)是Java平台的基础,它提供了开发和运行桌面应用程序、...

    良葛格Java学习笔记html.rar

    4. **集合框架**:讲述ArrayList、LinkedList、HashSet、HashMap等容器的使用和它们之间的区别。 5. **异常处理**:讲解如何捕获和处理运行时错误,以及try-catch-finally语句块的应用。 6. **输入输出与文件操作*...

    java学习笔记JDK6.0课件和代码

    这个压缩包中包含的"java学习笔记JDK6课件和课本代码"是学习JDK 6.0的重要参考资料,可以帮助你深入理解Java编程的核心概念和实践技巧。 1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括类、对象、...

    Java架构面试专题(含答案)和学习笔记-1

    本资料包含学习笔记和答案,便于自我检验和理解。 1. **Java基础知识**: - **内存管理**:包括垃圾回收机制、内存泄漏及其检测方法、JVM内存模型(堆、栈、方法区等)。 - **数据类型与数据结构**:深入理解原始...

    个人笔记--Java_API

    - 用于基本数据类型和对象之间的转换。 - **作用**:装箱和拆箱。 - **构造方法**:`new Integer(10);` - **常用方法**: - `parseInt(String s)`:字符串转整数。 - `toString(int i)`:整数转字符串。 **3.3 ...

    JAVA学习笔记(完整版)

    【JAVA学习笔记(完整版)】是一份由林信良编写的、专为JAVA初学者设计的学习资料。这份详尽的教程以清晰易懂的PDF文档形式呈现,旨在帮助新手快速掌握JAVA编程语言的核心概念和实用技巧。 在JAVA学习过程中,首先...

    Java开发学习笔记

    Java集合框架是管理对象集合的API,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)等接口及其实现类,提供了丰富的操作和功能。 七、多线程 Java内置对多线程的支持...

Global site tag (gtag.js) - Google Analytics