Java面试容器,collection,list,set
1.容器指的是可以容纳其他对象的对象。
2.collection/set/list的联系和区别?
(1)collection是Java集合顶级接口,存储一组不唯一,无序的对象;
(2)list接口和set接口是collections接口的两个子接口;
(3)list存储一组不唯一,有序(插入顺序)的对象;
Set接口存储一组唯一,无序的对象;


3.set和list的特点与区别?
(1)list:
1)是有序的collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引来访问list中的元素,这类似于Java的数组。
2)凡是可以操作索引的方法都是list接口特有方法。
(2)set:
1)接口存储一组唯一、无序的对象(存入和取出的顺序不一定一致)。
2)操作数据的方法与list类似,set接口不存在索引相关的方法。
4.collection接口常用的方法;
Add(Object obj);添加,存储的是对象的引用;
Size():容器中实际的元素个数;
Remove(Object obj):删除一个元素;
Remove(Collection c):删除与集合C中元素相同的元素;
RetainAll(Collection c):只保留当前集合与集合C中的相同的元素;
Contains(Object obj):判断集合中是否存在元素obj;
isEmpty():判断集合是否为空;
Iterator():生成此集合的迭代器;
5.addAll(c)是把集合C中的元素添加到集合C2里;
Collection c = new HashSet();
Collection c2 = new HashSet();
Apple a = new Apple();
c.add(a);
c2.addAll©;
//增加另一个容器中的所有元素!
C2.add(c)是把集合c当做一个元素添加到集合c2里;
Collection c = new HashSet();
Collection c2 = new HashSet();
c.add(a);
c2.add(c);
6:
Object[] o0bjArr = new Object[5];
objArr[0] = 56;
objArr[1] = 123;
objArr[2] = “HelloWorld”;
objArr[3] = new Dog();
objArr[4] = new Cat();
7. List中
Add(int index,E element):把元素element添加到索引为index的位置;
Get(int index):得到索引为index的元素。
8.ArrayList和LinkedList:
两者都实现了list接口,都具有list中元素有序、不唯一的特点。
ArrayList实现了长度可变的数组,在内存中分配连续空间。遍历元素和随机访问元素的效率比较高;
|
0 |
1 |
2 |
3 |
4 |
5 |
|
|
aaaa |
dddd |
cccc |
aaaa |
eeee |
dddd |
LinkedList采用链表存储方式。插入、删除元素时效率比较高。

9.ArrayList实现了长度可变的数组,在内存中分配连续空间,遍历元素和随机访问元素的比较高。
add(int index,Object obj)
addAll(int index,Collections c)
remove(int index)
set(int index,Object obj):使用元素obj替代索引位置上的元素。
Get(int index)
subList(int beginIndex,int endIndex);
Java面试容器,collection,list,set的更多相关文章
- Java面试-容器的遍历
当我们用增强for循环遍历非并发容器(HashMap.ArrayList等),如果修改其结构,会抛出异常ConcurrentModificationException,因此在阿里巴巴的Java规范中有 ...
- 200个最常见的JAVA面试问题(附答案)
本文内容: 20个最常见的JAVA面试问题(附答案) 13个单例模式JAVA面试问题(附答案) 说说JVM和垃圾收集是如何工作的(附答案) 说说如何避免JAVA线程死锁(附答案) Java中HashS ...
- java容器-Collection
1.介绍 collection<E>是java中容器的最主要的接口,该接口继承于Iterable<E>,使得java中所有实现Collection<E>的容器 ...
- 转:最近5年133个Java面试问题列表
最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...
- Java面试葵花宝典
面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题,而6. 只是选择其中的一 ...
- java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏
2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...
- Java面试宝典2013版(超长版)
一. Java基础部分......................................................................................... ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- java 面试
115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...
随机推荐
- Django之model.form创建select标签
前言 之前我们学习了form表单验证用户输入格式和自动创建HTML,那么如果用户创建select标签时怎么办呢,先来看下这个东西: models.py 数据格式: class UserInfo(mod ...
- python基础之线程、进程、协程
线程 线程基础知识 一个应用程序,可以多进程.也可以多线程. 一个python脚本,默认是单进程,单线程的. I/O操作(音频.视频.显卡操作),不占用CPU,所以: 对于I/O密集型操作,不会占用C ...
- LeetCode_121. Best Time to Buy and Sell Stock
121. Best Time to Buy and Sell Stock Easy Say you have an array for which the ith element is the pri ...
- ElasticSearch——原始文档和倒排索引
一.原始文档 如上图所示, 第二象限是一份原始文档,有title和content2个字段,字段取值分别为”我是中国人”和” 热爱共X产党”,这一点没什么可解释的.我们把原始文档写入Elasticsea ...
- Python3之使用枚举类
当我们需要定义常量时,一个方法是用大写变量通过整数来定义,例如月份 JAN = 1 FEB = 2 MAR = 3 APR=4 May=5 Jun=6 Jul=7 Aug=8 Sep=9 Oct=10 ...
- Xena L23网络测试仪Valkyrie使用技巧100例:修改设备管理IP,设备关机 (编号01)
Xena Valkyrie产品提供100M~400Gbps全速率接口速率支持 产品链接 https://xenanetworks.com/valkyrie/ 需求# 1.多个用户如何共享使用一个机箱? ...
- Android_7.1.1_r6源码下载
作为一名Android工程师,阅读Android源代码也是一门基本功,前段时间由于公司开发需要,便下载编译了Android_7.1.1_r6的源代码.在Windows下貌似是无法编译源代码的,为了以后 ...
- 提高.NET应用性能
提高.NET应用性能的方法 写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictio ...
- Dapper连接MySql数据库
首先通过NuGet在项目中分别安装Dapper和MySql.Data的引用 PM> Install-Package Dapper -Version PM> Install-Package ...
- vector iterators incompatible
字面翻译迭代器类型不兼容 今天同事遇到的这个问题算是一个习惯性写法的问题.描述一下代码: struct Track{}; class BaseTrack { - std::vector<Trac ...