关于set,list,map的理解

java集合分为三种Set,List ,Map

(1)Collection:首先set跟list(接口)是兄弟,爹是collection,同时list又有儿子ArrayList,LinkedList,Vector。

Set有儿子HsahSet,TreeSet。

(2)Map:Map有三个儿子HashMap,HashTable,TreeMap。

一.来说Collection

1.有人想可以有一个自动扩展且无序的数组,所以List

2.有的人想有没有重复的数组,所以有了set

3.有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree**

1)儿子List

ArrayList:是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组。

LinkedList:是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.

Vector:和ArrayList类似,但属于强同步类。如果你的程序本身是线程安全的(thread-safe,没有在多个线程之间共享同一个集合/对象),那么使用ArrayList是更好的选择。正常情况下,大多数的Java程序员使用ArrayList而不是Vector,因为同步完全可以由程序员自己来控制。

更详细请参考http://www.2cto.com/kf/201312/261556.html

2)儿子Set

Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:

HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快

TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

1)儿子Map

预知后事如何,请听下回分解。

时间: 2024-11-10 08:45:22

关于set,list,map的理解的相关文章

json与string与map的理解

json是一种特殊格式的string字符串,也就是json也是string类型,只是这种string是有格式的,那么他的格式就是类似map的格式[key:value] 举例子: Map map = request.getParameterMap();//map值为{"name":["yuqiyu"]} System.out.println(request.getParameterMap());//打印出来的为{name=[Ljava.lang.String;@452

【由浅入深理解java集合】(五)——集合 Map

前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与List.Set集合的某些特性有重合,因此观看本篇文章的会参考到之前的一些内容,最下方有链接.如果已经有这方面的基础,那么对Map的学习将会事半功倍. HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 既然要介绍HashMap,那么就顺带介绍HashTable

c++的关联容器入门(map and set)

C++的关联容器主要是两大类map和set 我们知道谈到C++容器时,我们会说到 顺序容器(Sequence containers),关联容器(Associative containers),无序关联容器(Unordered associative containers)以及容器适配器(Container adaptors), 另外,我相信,这些抽象的容器概念,应该是所有高级语言都有的.本文重点阐述关联容器. Associative containers implement sorted dat

Java8-使用流(1)

在之前,你已经看到了流让你从外部迭代转向内部迭代.这样,你就用不着写下面这样的代码来显示地管理数据集合的迭代(外部迭代)了: 1 List<Dish> vegetarianDishes = new ArrayList<>(); 2 for (Dish d : menu) { 3 if (d.isVegetarion()) { 4 vegetarianDishes.add(d); 5 } 6 } 你可以使用支持filter和collect操作的Stream API(内部迭代)管理对集

Cocos2d-x学习笔记 001--初识cocos

今年大三下半年,刚开始老师说要学习unity但是不知道为什么改为学习Cocos2dx.  这样我在寒假学的unity就不能在女生面前装逼了,很伤心.但是既来之则安之,好好学习cocos吧. 到目前为止,也是没有太过深入的理解过Cocos2dx[学习了差不多两个星期吧].我感觉看别人对一个东西的理解总是不如自己去理解一下.最近在看关东生著的<Cocosdx实战c++>----其实感觉是有关cocos2dx的资料很少找了好久,最后选定这个作为自己的第一本Cocosdx启蒙书. 刚开始就是直接没有实

hadoop

Hadoop理论 一.简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构. 模仿了goole的大数据开源,在linux平台下,以java运行的. 二.各节点作用 对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve. 主节点包括

S2/JAVA/07-集合框架

集合位于java.util包中. 通常说的集合框架共有3大类接口:List,Set和Map. 他们的共同点:都是集合接口,都可以用来存储很多对象. 它们的区别如下: Collection接口存储一组不唯一(允许重复).无序的对象. Set接口继承Collection接口,存储一组唯一(不允许重复).无序的对象. List接口继承Collection接口,存储一组不唯一(允许重复).有序(以元素插入的次序来放置元素,不会重新排列)的对象. Map接口存储一组成对的键-值对象,提供key(键)到va

2015年11月26日 Java基础系列(三)ThreadLocal类初级学习

序,ThreadLocal类是为了解决多线程的安全问题.线程安全的意思也就是说每个线程操作自己的变量,不要对其他线程的值造成影响. 在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并发性. 1 ThreadLocal解决多线程安全问题的思路是通过ThreadLocalMap进行管控,就像一个Map中存在多个键值对,ThreadLocalMap可以对比Map进行理解. 2 一般通过覆盖ThreadLocal的init

用Map-Reduce的思维处理数据

在很多人的眼里,Map-Reduce等于Hadoop,没有Hadoop谈Map-Reduce犹如自上谈兵,实则不然,Map-Reduce是一种计算模型,只是非常适合在并行的环境下运行,Hadoop是Map-Reduce的一种实现,没有Hadoop照样可以跑Map-Reduce程序.python就内置有map()和reduce方法(虽然与hadoop的map-reduce有区别). 这篇文章主要介绍如何用python在linux的管道进行map-reduce编程,本文写的所有map-reduce程