小白学java

本文介绍了Java中的LinkedList数据结构,与ArrayList的底层区别、增删效率对比,并着重讲解了Set接口(如HashSet)的特性,以及如何根据操作频率选择合适的数据结构。还讨论了Set接口的常用方法和遍历方式。
摘要由CSDN通过智能技术生成

小白学java第38天

LinkedList:

        1. LinkedList底层维护了一个双向链表

        2. LinkedList中维护了两个属性first和last分别指向首节点和尾节点

        3.每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点。最终实现双向链表

        4.所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高

Arraylist与Linkedlist的比较:

底层结构增删的效率改查的效率
ArrayList可变数组

较低

数组扩容

较高
Linked双向链表较高,通过链表追加较低

如何选择ArrayList和LinkedList:

        1.如果我们改查的操作多,选择ArrayList

        2.如果我们增删的操作多,选择LinkedList

        3.一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择ArrayList

        4.在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是ArrayList,另外一个模块是LinkedList

set接口:(以Set接口的实现类HashSet接口解释)

        1.无序(添加和取出的顺序不一致),没有索引

        2.set接口的实现类的对象(Set接口对象),不允许重复元素,所以最多包含一个null

        3.JDK API中Set接口的实现类有:

Set接口的常用方法:


        和List接口一样, Set接口也是Collection的子接口,因此,常用方法和Collection接口一样


Set接口的遍历方式:

        同Collection的遍历方式一样,因为Set接口是Collection接口的子接口

        1.可以使用迭代器

        2.增强for

        3.不能使用索引的方式来获取.

Java对于初者来说,是一个系统且有计划的过程。以下是小白Java的一些建议: 1. **基础知识了解**:开始之前,了解计算机科的基础概念,如数据类型、变量、控制结构(如循环和条件语句)等。这些都是Java语言的基础。 2. **选择教材或课程**:推荐使用官方文档《Java Language Specification》以及像《Head First Java》这样的入门书籍,或者在线教程,比如Codecademy、Udemy或Coursera的Java课程。 3. **安装环境**:安装Java Development Kit (JDK) 和集成开发环境(IDE),比如Eclipse、IntelliJ IDEA 或者最新流行的JetBrains全家桶(包括PyCharm、WebStorm等)。 4. **语法习**:从Java语言的基本语法开始,理解类、对象、构造函数、方法、访问修饰符等概念。 5. **实践编写代码**:通过编写简单的Hello World程序,逐步实现小项目,比如计算器、猜数字游戏等,提升实战能力。 6. **数据结构与算法**:Java习不能忽视算法,理解并掌握基本的数据结构如数组、列表、栈和队列,以及常用算法,这有助于提高代码效率。 7. **面向对象编程**:理解面向对象(OOP)的概念,包括封装、继承、多态等,这是Java的核心。 8. **异常处理**:Java对错误和异常处理有严谨的规定,会如何使用try-catch-finally来处理程序中的异常。 9. **框架习**:习Spring、Hibernate等企业级框架,了解它们如何简化开发和提高代码质量。 10. **阅读开源项目**:参与开源社区,阅读他人的代码,可以让你更好地理解和应用所知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值