Java集合是多个对象的容方法。集合(容方法)。简单点,事实上就是一个对象,能将具有同样性质的多个元素汇聚成一个总体。

Collections Framwork是用来表现和操纵集合的一个统一的体系结构。

经常使用的集合有HashMap,HashSet,ArrayList……,由于对于每个集合的内涵都非常模糊,所以才会导致自己不知道详细的使用环境。我们通过对照来区分异同:

Set(集)

Set能够说是一种最简单的集合,基本的两个实现类,HashSet。TreeSet,两者最大的差别就是TreeSet是有序的。而HashSet是无序的(具体请见后文分解)

以HashSet举例说明:

import java.util.HashSet;
import java.util.Set;
import java.util.*;public class hashset {/*** 使用Set演示样例代码*/public void hashSetExample() {Set vehicles = new HashSet();//Declare some string itemsString item_1 = "apple";String item_2 = "orange";String item_3 = "banana";boolean result;//把每一个文件都使用set方法增加result = vehicles.add(item_1);System.out.println(item_1 + ": " + result);result = vehicles.add(item_2);System.out.println(item_2 + ": " + result);result = vehicles.add(item_3);System.out.println(item_3 + ": " + result);//再次尝试使用item_1result = vehicles.add(item_1);System.out.println(item_1 + ": " + result);}@SuppressWarnings("unchecked")  public static void main(String[] args) {new hashset().hashSetExample();}}

最后输出的结果为:apple:true;orange:true;banana:true;apple:false,出现的原因就是由于咱们Set是不同意有反复元素出现的。

List(列表)

List相比而言,是常见的,List特征就是其元素是以线性方式存储,集合中能够存放反复的对象,当涉及到“栈”,“队列”,“链表”等时,都是使用List,事实上也就是我们数据库结构使用的那些知识。

至于详细使用什么,也得视情况而定,比方:

ArrayList():适用于能够改变长度的数组,能够对元素进行随机的訪问,仅仅只是插入,删除元素的速度较慢;

LinkedList():主要用于链表数据结构,插入和删除速度是非常快的,仅仅是訪问时的速度慢。

Vector():底层是数组数据结构 线程同步(数组长度是可变的百分之百延长)(不管查询还是增删都非常慢。所以一般不经常使用,直接用ArrayList取代来使用了。

Map(映射)

Map<key,value>是一个双列集合。是一种把键对象和值对象映射的集合,有一个Key值和一个Value值,Key值代表唯一,所以不能反复;Value值是真正能够存储的变量,所以是能够反复的。Map没有继承于Collection接口。在Map集合中检索元素时。仅仅要给出键对象。就能够返回相应的值。

对于Map而言,运行效率是一个大问题,经常使用的两个实现为:

HaspMap():Map基于散列表的实现,插入和查询“键值对”的开销是固定的。HashMap就是使用对象的HashCode来进行查询的。此方法可以显著提高性能

TreeMap():仅仅要是Tree。他就一定是经过排序的,TreeMap是唯一带有SubMap()方法的,所以它能够返回一个子树。

Map-HashCode举例:

import java.util.*;     public class hashcode {    public static void main(String[] args){    HashMap h2=new HashMap();    for(int i=0;i<10;i++)    h2.put(new Element(i), new result());    System.out.println("h2:");    System.out.println("Get the result for Element:");    Element test=new Element(5);    if(h2.containsKey(test))    System.out.println((result)h2.get(test));    else   System.out.println("Not found");    }
}
/* 这样执行结果为null,也就是得不到值 */
/* class Element{    int number;    public Element(int n){    number=n;    }
}     */
/* 更改方法例如以下: */
class Element{    int number;    public Element(int n){    number=n;    }     public int hashCode(){    return number;    }    public boolean equals(Object o){    return (o instanceof Element) && (number==((Element)o).number);    }
}   class result{    Random r=new Random();    boolean possible=r.nextDouble()>0.5;    public String toString(){    if(possible)    return "OK!";    else   return "Impossible!";    }
}   

对于Element而言,前后两者的对照就是一个有返回值。一个没有返回值;HashCode方法是继承于Object的。由于Element在这里覆盖了hashCode()和equals()方法,这样是前后两个Key保持了一致,所以终于有了值返回。

对于HashCode而言。事实上不必对每一个不同的对象都产生一个唯一的HashCode,仅仅要可以得到返回值就达到目的了。再者,对于HashCode,最好可以分散开,使用“分散原则”,有利于提高性能。

最后总结:

对于Collection须要了解的还有非常多非常多,这也仅仅是冰山一角,通过对照学习,可以在使用的过程中得到最优解,这样才干使我们的系统性能优化。价格合理。

Java Collection框架—List\ set \map 的异同世界相关推荐

  1. Java集合框架List,Map,Set等全面介绍

    Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.Colle ...

  2. Java Collection框架入门

    容器在Java语言开发中有着非常重要的作用,Java提供了多种类型的容器来满足开发的需要,容器不仅在面试笔试中也是非常重要的一个知识点,在实际开发的过程中也是经常会用到.因此,对容器的掌握是非常有必要 ...

  3. Java Collections Framework - Java集合框架List,Map,Set等全面介绍之概要篇

    deng 转载于:https://www.cnblogs.com/jacktu/archive/2009/05/15/1457316.html

  4. 史上最全的集合框架讲解 ----- Java 集合框架(3)---- Map 相关类最全解析

    引言 好了,步入正题,上篇文章Java 集合框架(2)---- List 相关类解析中我们一起看了一下 List 接口的相关具体类(ArrayList.LinkedList-.),这篇开始我们开始探索 ...

  5. java集合框架图(一)

    一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...

  6. Java 集合框架 : Collection、Map

    1. Collection接口是Java集合框架的基本接口,所所有集合都继承该接口. 1.1 方法 : public interface Collection<E> extends Ite ...

  7. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  8. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  9. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

最新文章

  1. 【Java VisualVM】使用 VisualVM 进行性能分析及调优
  2. 一个基于xml的超级orm框架-世界是由懒人创造的。
  3. csgo机器人扔道具_雕友投稿 | 我裂开了, CSGO终于更新了
  4. Spark Metrics配置详解
  5. AOSP6.0.1 launcher3入门篇—解析launcher.java文件
  6. sum() over()函数使用
  7. 动态规划——基本思想
  8. 经典排序算法总结与Python实现(上)
  9. Spark MLlib垃圾邮件分类示例
  10. 创建系统镜像_学会这些, 操作docker image镜像就够了!
  11. SGD(随机梯度下降)详解
  12. 麦咖啡的设置,很长,如果你想百毒不侵的话。。
  13. STL 格式解析--文本以及二进制格式
  14. 基于HuTool工具实现Excel复杂表头生成、单元格合并绘制对角线(计算N叉树的最大深度和最大宽度)
  15. Pytorch - Tips
  16. macbook 鼠标光标乱跳解决
  17. ios APP加密探究几维安全iOS 代码混淆效果参考
  18. uniapp解决H5唤醒APP
  19. 文字绕圆排列:vue
  20. 2022年下半年软件评测师考试真题一些回忆

热门文章

  1. 一个生成全局唯一Sequence ID的高并发工厂类 (Java)
  2. C# 发送Http请求 - WebClient类
  3. (转)使.Net程序在未安装framework的电脑上运行(公布方法、源代码)
  4. Oracle数据库密码过期重置
  5. 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别
  6. Robot framework 二次开发笔记
  7. 导航,头部,CSS基础
  8. 使用云计算灾难恢复计划制定勒索软件恢复策略
  9. 微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户
  10. 使用expect 打通到其他服务器无密码访问