集合-JavaSE

集合相关概念:

1、集合中存储的是对象的引用(内存地址)
2、集合中无法存储基本类型数据(自动装箱)

list:

1、有序可重复,存储的元素有下标
2、有序指:存进去是这个顺序,取出来还是这个顺序
3、有下标指:下标从0开始,以1递增

ArrayList:

1、底层采用数组这种数据结构:Object[] obj
2、是非线程安全的
3、初始化容量10,当集合满了,自动扩容1.5倍
4、优点:检索元素效率高
5、缺点:随机增删元素效率低,但向某尾添加元素,效率很高

LinkedList:

1、底层采用了双向链表数据结构
2、随机增删效率高,检索效率低

Vetor:

1、底层采用了数组这种数据结构
2、线程安全的
3、默认容量10
4、数组满了之后扩容2倍

Set:

1、无序不可重复
2、无序表示存进去是这个顺序,取出来就不一定是这个顺序了

HahSet:

1、HashSet在new的时候,底层实际上new了一个HashMap集合
2、向HashSet集合中存储元素,实际上存储到了HashMap集合中了
3、HashMap底层采用了哈希表数据结构

TreeSet:

1、因为也继承了SortedSet接口,所以集合中的元素除了无序不可重复,而且还可以自动排序
2、底层实际上是TreeMap,new TreeSet的时候,底层实际上new TreeMap集合,
3、往TreeSet集合中存数据时,实际上将数据存到了TreeMap中
4、TreeMap底层采用了二叉树数据结构

Map:

1、key和value都是存储Java对象的内存地址
2、key特点:与Set特点相同,元素无序不可重复

HashMap:

1、底层是哈希表
2、非线程安全
3、初始化容量16,扩容2倍
4、默认扩容因子0.75
5、当单项链表元素达到8个时,会转化为红黑树,当小于等于6个时,又会转化为单向链表

Hashtable:

1、底层是哈希表
2、线程安全

Properties:

1、Hashtable的子类
2、一般用来存储属性
3、key,value都只能存储String类型

TreeMap:
1、底层数据结构是二叉树
2、集合key部分的元素会自动排序

集合常用方法:

Collection:
	Collection collection = new ArrayList();

	1、向集合中添加元素:
		collection.add("a");

	2、获取集合中元素的个数:
    	collection.size();

    3、清空集合中的元素
    	collection.clear();

    4、判断集合中是否包含特点的元素
    	boolean contains = collection.contains("a");

    5、删除集合中特定元素
    	collection.remove("a");

    6、判断集合是否为空
    	collection.isEmpty();

    7、将集合转换成数组
    	collection.toArray();

    8、获取集合的迭代器对象
    	Iterator iterator = collection.iterator();

    9、使用Iterator遍历Collection集合
    	Iterator iterator = collection.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

集合安全问题:

将ArrayList转换成线程安全的(HashMap也可以这样转换)

  //线程不安全
  List list = new ArrayList();
  // 转换成线程安全的
  Collections.synchronizedList(list);
  list.add(1);
  list.add(2);
  list.add(3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值