Java中集合关键字的区别
1、 ArrayList、Vector和Stack有什么区别?
1、ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样)
2、Stack继承了Vector,两者的方法都是线程安全,ArrayList没有考虑线程的问题
3、vector速度慢,ArrayList做了优化,效率更高
2、 ArrayList 和 LinkedList 的区别?
1、 ArrayList底层是数组的实现,linkedList地层是连接的实现(简:数据结构不同)
1.1在java中链表就是自己实现一个类,在类中记录了前一个和后一个的地址,每次查找都需要找到前一个或后一个才能往前或者往后找
2、ArrayList查找速度快,删除和插入速度慢 (常用)
3、LinkedList查找速度慢,删除和插入速度快
4、LinkedList有自己独有的方法:addFirst() addLast() removeLast() removeFirst()。(首尾重要)
3、set和List的区别?
① set接口下的集合特点:
1、没有下标
2、无序的
3、不能重复(前面的被后面的覆盖)
② List接口下的集合特点:
1、有下标
2、有序的(按照添加的顺序获取)
3、可以重复
set转list:
List< 类名 > list = new ArrayList< >( set类 );
4、collections 和collection的区别?
collections是java.util下的工具类,其下有 set 及 list;
collection是java.util下的接口;
5、HashSet 和TreeSet的区别?
HashSet不可以排序
TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法
1、HashSet(hashset比较是否相等,根据两个对象的哈希值)
1、HashSet不可以排序
1)、add()--- 添加元素,会先判断是否为同一对象。出于业务上的考虑我们需要重写HasgCoda方法和equals方法,来判断两个对象是业务上的相等;
2)、remove(Object o)--- 将元素从集合中移除 3)、size()---查看集合长度;
HashSet特点:
1)、遍历时没有顺序;
2)、允许包含null ;
3)、类中不允许出现重复元素;
4)、不能有for循环遍历能用foreach或while循环遍历;
2、TreeSet
1、TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法
1)、first()----返回第一个元素
2)、last()----返回最后一个元素
3)、pollLast()---删除最后一个元素
4)、pollFirst()---删除第一个元素
1、使用外部比较器对TreeSet中的元素进行排序,外部比较器作为TreeSet的构造方法参数传递过去。
2、使用外部比较器,我们自定义的类可以不用实现CompareTo
3、Hash的优缺点:
优点:删,增、查很快,提高存储率
缺点:无序,不可重复
6、Comparable和Comparator的区别?
Comparable在java.long包;
Comparator在java.util包;
7、集合和数组的区别?
①、数组创建长度固定,集合长度会随集合元素的添加自动扩展。
②、集合中只能存放对象的引用,而数组可以有基本类型,也可以有引用类型。
③、集合中的算法更加丰富,使用集合操作数据会比数组简洁。
Java中集合关键字的区别的更多相关文章
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- java中ArrayList 、LinkList区别
转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...
- java中equals和==的区别 (转)
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
- java中==与equel的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地 ...
- Java中集合的概述
一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数 ...
- Java标识符和关键字的区别!java基础 java必学
任何计算机语言都离不开标识符和关键字,那我们就来简单讲一下他们两者的区别,希望有助于大家的的理解!本篇文章干货满满,如果你觉得难懂的话可以看下高淇老师讲的Java300集的教学视频,分选集,深度剖析了 ...
- Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」
Java中的关键字有哪些? 1)48个关键字:abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do. ...
- 深入分析Java中的关键字static
在平时开发当中,我们经常会遇见static关键字.这篇文章就把java中static关键字的使用方法的原理进行一个深入的分析.先给出这篇文章的大致脉络: 首先,描述了static关键字去修饰java类 ...
- Java中的关键字 transient
先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...
随机推荐
- golang之运算符
目录 一.golang之运算符 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 一.golang之运算符 Go 语言内置的运算符有:(比python少了一个成员 ...
- 【转载】浅析python日志重复输出问题
出处:https://www.cnblogs.com/huang-yc/p/9209096.html 问题起源: 在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块 ...
- JAVA笔记11-Final关键字
相当于C++中的const (1)final的变量值(成员变量.局部变量(形参))不可被改变: (2)final的方法不能被重写: (3)final的类不能被继承.
- zrender-部分小知识点集合
1.存组件元素和取组件元素,会在数据更新时,将存起来的拿出来 在construct(){ this.saveData=[];//先声明一个空的数组 } //存的方法 setSave(ele,i,nam ...
- jquery enabled选择器 语法
jquery enabled选择器 语法 作用::enabled 选择器选取所有启用的表单元素.大理石平台精度等级 语法:$(":enabled") jquery enabled选 ...
- Travis CI Could not find or load main class org.gradle.wrapper.GradleWrapperMain 错误
问题 在 Travis CI 编译的时候出现 Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain ...
- spring注解版
第一.spring框架快速入门 1.1什么是spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of C ...
- HBase2.0新特性解析
作者 | 个推大数据运维工程师 行者 升级背景 个推作为专业的数据智能服务商,在业务开展过程中存在海量的数据存储与查询的需求,为此个推选用了高可靠.高性能.面向列.可伸缩的分布式数据存储系统--HBa ...
- 个推CTO深度解析数据智能之多维度分析系统的选型方法
引言 前文回顾:[<数据智能时代来临:本质及技术体系要求>][2]作为本系列的第一篇文章,概括性地阐述了对于数据智能的理解以及推出了对应的核心技术体系要求: 数据智能就是以数据作为生产资料 ...
- JMH基准测试框架
jmh-gradle-plugin, 集成JMH基准测试框架和 Gradle 0 赞 0 评论 文章标签:Gradle JMH 基准 INT benchmark framework 帧 ...