集合

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 集合特点:
底层是一个哈希表(数组+链表/红黑树)+链表(记录元素的存储顺序);
有序的存储,但也不允许重复。

最新文章

  1. org.apache packages can&#39;t be resolved in Eclipse解决方案
  2. SharePoint 2013中Office Web Apps的一次排错
  3. Uva 572 Oil Deposits
  4. springMVC+angular+bootstrap+mysql的简易购物网站搭建
  5. linq语句复杂查询和分开查询的性能对比
  6. Flashing Back a Failed Primary Database into a Physical Standby Database(闪回FAILOVER失败的物理备库)
  7. Python学习之路基础篇--09Python基础,初识函数
  8. C# 时钟控件
  9. 【HDFS API编程】查看文件块信息
  10. PCL-安装
  11. c# Console application Open/Get Url by Browser
  12. Lodop删除语句Deleted只能内嵌设计维护可用
  13. 字符串为空的比较 ==与equals() 区别(キ`゚Д゚&#180;)!!基础很重要 !!!
  14. 普通文件的上传(表单上传和ajax文件异步上传)
  15. intelliJ idea快捷方式
  16. C# 各类常见Exception 异常信息
  17. 系统批量运维管理器Fabric详解
  18. Android之数据存储之SharedPreferences
  19. scrapy 是指user_agent
  20. java 字符编码问题

热门文章

  1. hdu4352 XHXJ's LIS (数位dp)
  2. codeforces251A. Points on Line
  3. 迷宫城堡 HDU - 1269 判断有向图是否是强连通图
  4. Codeforces Round #498 (Div. 3) E. Military Problem (DFS)
  5. sort排序使用以及lower_bound( )和upper_bound( )
  6. Linux系统诊断必备技能之三:查看信息系统常用命令
  7. codeforces 6D
  8. codeforces 870C
  9. CSS3 弹性盒子(Flex Box)
  10. React Testing All in One