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 ...
随机推荐
- zjnu1735BOB (单调队列,单调栈)
Description Little Bob is a famous builder. He bought land and wants to build a house. Unfortunately ...
- codeforces 632F. Magic Matrix (最小生成树)
You're given a matrix A of size n × n. Let's call the matrix with nonnegative elements magic if it i ...
- codeforces 86D D. Powerful array
An array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, a ...
- hdu 1517 Multiplication Game
题意: 用整数p乘以2到9中的一个数字.斯坦总是从p = 1开始,做乘法,然后奥利乘以这个数,然后斯坦,以此类推.游戏开始前,他们画一个整数1 < n < 4294967295,谁先到达p ...
- Codeforces Round #636div3 D. Constant Palindrome Sum (划分区间,差分)
题意:给你一个长度为偶数n的数组,每次可以将一个元素修改为不大于k的值,要求每个a[i]+a[n-i+1]都相等,求最少操作多少次 题解:假设每一对的和都为sum,小的记为mn,大的记为mx; ...
- Codeforces Round #304 (Div. 2) D - Soldier and Number Game
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...
- 【转】Dockerfile
1. 关于docker build docker build可以基于Dockerfile和context打包出一个镜像,其中context是一系列在PATH或URL中指定的位置中的文件(contex ...
- CDN 概述
占位 CDN(Content Delivery Network)内容发布网络 推荐Blog: CDN 学习笔记
- 信号量解决理发师问题(barber)
问题描述及思路 代码 一些细节见注释 这里ret应该用int..忘了改了. 运行结果 因为座位数和到来最大间隔的原因,没有出现全部椅子被占用的情况
- 80行Python代码搞定全国区划代码
微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos ...