Java基础学习--集合

            集合

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

posted @ 2021-01-19 14:21  Z_WINTER  阅读(77)  评论(0)    收藏  举报