集合

List集合的特点

1.有序的数据集合,存储元素和取出元素的顺序是一致的(存储123,取出123)

2.有索引,包含了一些带索引的方法

3.允许存储重复的元素


List接口中带索引的方法

  1. add
  2. get:返回集合中指定位置的元素
    1. 3.remove:一处列表中指定位置的元素
    2. 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基础学习--集合的更多相关文章

  1. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  2. java基础学习——集合

    -------|List: 有存储顺序, 可重复-----------|ArrayList: 数组实现, 查找快, 增删慢,由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢. ...

  3. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  4. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  5. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

  6. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  7. 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!

    前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...

  8. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  9. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

随机推荐

  1. P1091 合唱队形(LIS)

    题目描述 NNN位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K1,2, ...

  2. 正则指引 pdf 高清版

    链接:https://pan.baidu.com/s/1Xeuma4toE_L-MxROvTGBxw 提取码:nqyj

  3. SpringCloud @RefreshScope标注的Bean在生命周期中怎么样的?

    @RefreshScope 前言 该文章是由上一篇引申而来的,上一篇文章描述了Nacos是怎么触发配置刷新的,接着来写有关@RefreshScope的一些东西,都是由DEBUG而来 上一篇 文章概览 ...

  4. MySQL——时间、字符串、时间戳相互转换

    一.时间转字符串 select data_format(now(),'%Y-%m-%d %H:%i:%s'); 二.时间转时间戳 select unix_timestamp(now()); 三.字符串 ...

  5. Nginx location相关配置说明

    Nginx location相关配置说明       基于不同的IP.不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块ngx_http_core_module实现. 新建PC web站点 [ ...

  6. leetcode347 python

    通过维护最小堆排序,使用heapq模块 一般使用规则:创建列表 heap = [] 函 数                                                        ...

  7. 美团CodeM资格赛第二题

    锦标赛 时间限制:1秒 空间限制:32768K 组委会正在为美团点评CodeM大赛的决赛设计新赛制.比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分. ...

  8. 011.NET5_MVC解读Razor混编

    MVC开发 1. 什么是MVC? V-视图,呈现给用户看到的内容---表现层 C-控制器,控制业务逻辑计算,可定义多种返回类型.可以是视图模型.JSON.字符串等等 M-视图模型,用于视图和控制之间传 ...

  9. Python求二维数组中某列的最大值

    主要运用np.amax() import numpy as np help(np.amax) a = np.arange(9).reshape((3, 3)) max_all = np.amax(a) ...

  10. ADN vs CDN All In One

    ADN vs CDN All In One Netlify & JAMstack https://app.netlify.com/teams/xgqfrms/sites ADN Applica ...