Java基础学习--集合
集合
List集合的特点
1.有序的数据集合,存储元素和取出元素的顺序是一致的(存储123,取出123)
2.有索引,包含了一些带索引的方法
3.允许存储重复的元素
List接口中带索引的方法
- add
- get:返回集合中指定位置的元素
- 3.remove:一处列表中指定位置的元素
- 4.set:用指定元素替换集合中的指定位置的元素
注意
操作索引时候一定要放置索引越界异常
遍历元素的方法 get()
普通for循环
迭代器循环
增强for循环
package com.zd; import java.util.LinkedList; /*
LinkedList集合的特点:
1.底层是一个链表结构,查询慢,增删快
2.里面包含大量处理首尾元素的方法
注意:使用LinkedList集合特有的方法,不可以使用多态
*/
public class testLinklist {
public static void main(String[] args) {
show01 ();
show02 ();
} private static void show01()
{
//创建LinkedList集合对象
LinkedList<String> linklist = new LinkedList<> (); linklist.add ( "1" );
linklist.add ( "2" );
linklist.add ( "3" );
System.out.println (linklist );
//插入元素的开头
linklist.addFirst ( "12313" );
//插入元素的结尾,相当于add
linklist.addLast ( "last" );
System.out.println (linklist );
}
private static void show02(){
//创建LinkedList集合对象
LinkedList<String> linklist = new LinkedList<> (); linklist.add ( "1" );
linklist.add ( "2" );
linklist.add ( "3" );
System.out.println (linklist );
//获取第一个元素
String first = linklist.getFirst ();
System.out.println (first );
//获取最后一个元素
String last= linklist.getLast ();
System.out.println (last );
} }
List集合的实现类
ArrayList和LinkedList是面试时候经常出现的
他们之间的区别和练习就是,
ArrayList:原型是数组,多线程实现,查询快增删慢,数组长度固定,每次增删都需要创建新的数组
LinkedList:原型是链表实现,增删快,查询慢,多线程实现,链表结构,增加删除元素对整体结构本身不造成影响
哈希值:是一个十进制的整数,由系统随机给出(是一个逻辑地址,并不是真实的物理地址)
在Object方法,可以获取对象的哈希值,对象的地址值就是用的hash值。
hashCode();
HashSet集合的数据结构(哈希表)
jdk1.8之前:哈希表=数组+链表
jdk1.8之后:
哈希表=数组+链表
哈希表=数组+红黑树(提高查询的效率)
哈希表的特点:速度快
存储数据到元素中,先计算元素的哈希值
如果链表的长度超过了八位,那么就会把链表转换为红黑树。
LinkedHashSet 继承了HashSet
LinkedHashSet 集合特点:
底层是一个哈希表(数组+链表/红黑树)+链表(记录元素的存储顺序);
有序的存储,但也不允许重复。
Java基础学习--集合的更多相关文章
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- java基础学习——集合
-------|List: 有存储顺序, 可重复-----------|ArrayList: 数组实现, 查找快, 增删慢,由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢. ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 第6节:Java基础 - 三大集合(上)
第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...
- Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!
前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
随机推荐
- Qt内部的d指针和q指针手把手教你实现
Qt内部的d指针和q指针 在讲Qt的D指针之前让我们来简单的解释一下D指针出现的目的,目的是什么呢?保证模块间的二进制兼容. 什么是二进制兼容呢,简单说就是如果自己的程序使用了第三方模块,二进制兼容可 ...
- K8S(12)配置中心实战-多环境交付apollo三组件
k8s配置中心实战-多环境交付apollo三组件 目录 k8s配置中心实战-多环境交付apollo三组件 1.环境准备工作 1.1 zk环境拆分 1.2 namespace分环境 1.3 数据库拆分 ...
- Operating System:管程相关概念
管程 (Moniters,也称为监视器)一.管程的概念是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源.这些共享资源一般是硬件设备或一群变量.管程实现了在一个时间点, ...
- java笔试中创建String对象的思考
题目是这样的下面那些生成新的String对象() A . String s = new String(); B . String s = new String("A"); C. ...
- 洛谷p1981 表达式求值
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char ...
- js code review
js code review https://codereview.stackexchange.com/ refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只 ...
- js console API All In One
js console API All In One const log = console.log; for(const key in console) { log(`navigator.${key} ...
- vuex & redux
vuex & redux https://vuex.vuejs.org/ https://github.com/xgqfrms/VAIO/ https://scrimba.com/playli ...
- AMP & PWA
AMP & PWA AMP is a web component framework to easily create user-first websites. stories. ads. e ...
- Java基础篇(04):日期与时间API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.时间和日期 在系统开发中,日期与时间作为重要的业务因素,起到十分关键的作用,例如同一个时间节点下的数据生成,基于时间范围的各种数据统计和分 ...