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的更多相关文章

  1. Java面试-容器的遍历

    当我们用增强for循环遍历非并发容器(HashMap.ArrayList等),如果修改其结构,会抛出异常ConcurrentModificationException,因此在阿里巴巴的Java规范中有 ...

  2. 200个最常见的JAVA面试问题(附答案)

    本文内容: 20个最常见的JAVA面试问题(附答案) 13个单例模式JAVA面试问题(附答案) 说说JVM和垃圾收集是如何工作的(附答案) 说说如何避免JAVA线程死锁(附答案) Java中HashS ...

  3. java容器-Collection

    1.介绍    collection<E>是java中容器的最主要的接口,该接口继承于Iterable<E>,使得java中所有实现Collection<E>的容器 ...

  4. 转:最近5年133个Java面试问题列表

    最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...

  5. Java面试葵花宝典

    面向对象的特征有哪些方面  1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题,而6. 只是选择其中的一 ...

  6. java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏

    2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...

  7. Java面试宝典2013版(超长版)

    一. Java基础部分......................................................................................... ...

  8. 近5年133个Java面试问题列表

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...

  9. java 面试

        115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...

随机推荐

  1. Django之model.form创建select标签

    前言 之前我们学习了form表单验证用户输入格式和自动创建HTML,那么如果用户创建select标签时怎么办呢,先来看下这个东西: models.py 数据格式: class UserInfo(mod ...

  2. python基础之线程、进程、协程

    线程 线程基础知识 一个应用程序,可以多进程.也可以多线程. 一个python脚本,默认是单进程,单线程的. I/O操作(音频.视频.显卡操作),不占用CPU,所以: 对于I/O密集型操作,不会占用C ...

  3. 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 ...

  4. ElasticSearch——原始文档和倒排索引

    一.原始文档 如上图所示, 第二象限是一份原始文档,有title和content2个字段,字段取值分别为”我是中国人”和” 热爱共X产党”,这一点没什么可解释的.我们把原始文档写入Elasticsea ...

  5. Python3之使用枚举类

    当我们需要定义常量时,一个方法是用大写变量通过整数来定义,例如月份 JAN = 1 FEB = 2 MAR = 3 APR=4 May=5 Jun=6 Jul=7 Aug=8 Sep=9 Oct=10 ...

  6. Xena L23网络测试仪Valkyrie使用技巧100例:修改设备管理IP,设备关机 (编号01)

    Xena Valkyrie产品提供100M~400Gbps全速率接口速率支持 产品链接 https://xenanetworks.com/valkyrie/ 需求# 1.多个用户如何共享使用一个机箱? ...

  7. Android_7.1.1_r6源码下载

    作为一名Android工程师,阅读Android源代码也是一门基本功,前段时间由于公司开发需要,便下载编译了Android_7.1.1_r6的源代码.在Windows下貌似是无法编译源代码的,为了以后 ...

  8. 提高.NET应用性能

    提高.NET应用性能的方法 写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictio ...

  9. Dapper连接MySql数据库

    首先通过NuGet在项目中分别安装Dapper和MySql.Data的引用 PM> Install-Package Dapper -Version PM> Install-Package ...

  10. vector iterators incompatible

    字面翻译迭代器类型不兼容 今天同事遇到的这个问题算是一个习惯性写法的问题.描述一下代码: struct Track{}; class BaseTrack { - std::vector<Trac ...