java容器学习_java容器学习

容器是java中重要的一部分,其接口的结构如下

Collection

|

------------------        Map

|        |        |

Set       List      HashMap

|

HashSet

顾名思义,容器是用来存储东西的,对于对象,容器中存储的实质上是对象的引用,即对象的地址。

Collection接口有两个子接口Set和List,除了均是用来存储元素这个共性之外,分别具有不同的特点。

List类别的容器一般具有有序的特点,当元素插入删除时,维护了元素的顺序,并且可以放置重复元素。

Set类别的容器不允许放置重复元素,且一般是无序的。

Map类别的容器存储了对象和唯一可以标识该对象的主键的映射,不可以放置重复的主键。

List子类都是有序的,一般不用Collection接口来new List子类的的实例,这样会丢掉其中关于有序的

方法;当需要产生List子类实例时,应该用List接口进行new;因为所有对象都是Object的子类,故容器当中可以存放任意类型的对象。

package cn.learn.collection;

import java.util.ArrayList;

import java.util.Date;

import java.util.LinkedList;

import java.util.List;

import java.util.Vector;

class Dog{

}

public class Test {

public static void main(String[] args){

List list = new LinkedList();

list.add("aa");

list.add(new Date());

list.add(new Dog());

list.add(123);

System.out.println(list.size());

}

}

"aa"是字符串String引用类型,Dog是继承Object对象,123是通过自动拆箱和装箱机制包装成Integer来放入到

list当中。

LinkList底层实现是链表,插入删除较快、索引比较慢,不是线程安全的;

ArrayList底层实现是数组,插入删除较慢、索引比较快,不是线程安全的;

Vector底层实现也是数组,但是这个主要特点是线程安全的,效率略微低一些;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值