A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【001】简要描述集合及常用的方法?
答:
集合是一个存储容器,长度可变
常用方法:
①  增加:add( )                :将指定对象存储到容器中
  add 方法的参数类型是Object便于接收任意对象
  addAll( )                  :将指定集合中的元素添加到调用该方法和集合中

②  删除:remove( )                :将指定的对象从集合中删除
  removeAll( )          :将指定的集合中的元素删除

③  修改:clear( )                :清空集合中的所有元素

④  判断:isEmpty( )        :判断集合是否为空
  contains( )          :判断集合中是否包含指定对象
  containsAll( )          :判断集合中是否包含指定集合
  使用 equals( ) 判断两个对象是否相等

⑤  获取:size( )                :返回集合容器的大小

⑥  其它:toArray( )                :集合转为数组

【002】Iterator迭代器的好处?
答:
Iterator迭代器用来遍历集合中的元素
其好处是:
屏蔽了众多集合不同实现方式,对外提供统一的访问方法,用来遍历集合中的元素
Iterator接口有两个主要的抽象方法:
boolean hasNext( )        :判断集合中是否有可以被取出的元素,如果有返回true
next( )                        :取出集合中的下一个元素
注意:使用迭代器遍历时,不能对集合中的元素进行操作,否则会发生并发修改异常(ConcurrentModificationException)

【003】增强for循环能作用在哪些地方?
答:
增强for循环只能用在数组、或实现Iterable接口的集合类上

【004】泛型的作用和好处?
答:
作用:
1、增加了集合安全性,把运行时的错误,转为编译时错误
2、省去了类型强转的麻烦
好处:
将运行时期的ClassCastException,转移到了编译时期
避免了类型强转的麻烦

【005】数组与集合有什么区别?
答:
数组:只能存储同一种数据类型,长度固定
集合:可以存储很多种数据类型,长度可变

【006】字符串、数组、集合分别用什么来获取长度?
答:
字符串:通过 length( ) 方法
数   组:通过 length 属性
集   合:通过 size( ) 方法

【007】List与Set集合的区别?
答:
List与Set集合都继承自Collection接口,但
List:是一个有序的集合,可以存储重复的元素,有3个实现类:LinkedList、ArrayList、Vector
Set:是一个无序的集合,不能存储重复的元素,有2个实现类:HashSet、LinkedHashSet

【008】List 集合中特有的方法有哪些?
答:
void add(int index, Object element)                :将指定的元素,添加到该集合中的指定位置上
Object get(int index)                                :返回集合中指定位置的元素
Object remove(int index)                                :移除列表中指定位置的元素,返回的是被移除的元素
Object set(int index, Object element)        :用指定元素替换集合中指定位置的元素,返回值是更新前的元素

【009】ArrayList 与 LinkedList 有什么区别?
答:
ArrayList        :底层数据结构是数组,查询快,增删慢
LinkedList:底层数据结构是链表,查询慢,增删快

【010】HashSet如何保证元素的唯一的?
答:
通过重写 hashCode( ) 与 equals( ) 方法

【011】阐述下 HashSet 与 LinkedHashSet?
答:
HashSet                :元素唯一、不能重复,底层结构是哈希表结构,元素的存取顺序不能保证一致
LinkedHashSet:元素唯一、不能重复,底层结构是哈希表结构+链表结构,元素的存取顺序一致

【012】简要描述下map集合及常用方法?
答:
map集合中的元素都是成对出现,成对存储的
map集合中的元素都是以一对键和值的形式组成存在的,称为键值对
map集合中的键不能重复存储,值可以重复
map集合中的每一个键,对应着一个值
常用方法:
V put(K key, V value)                        :把指定的键与指定的值添加到Map集合中
V remove(Object key)                        :把指定的键所对应的键值对元素,
    在map集合中删除,并返回被删除元素的值
Set<Map.Entry<K, V>> entrySet()        :获取map集合中所有的键值对对象的集合(set集合)
V get(Object key)                                :根据指定的键,在map集合中获取对应的值
Set<K> keySet()                                :获取map集合中所有的键,存储到set集合中

【013】map集合有哪2种遍历方式?
答:
方式1:根据键找值的方式
方式2:根据键值对对象找键和值的方式

【014】写出map集合遍历的步骤?
答:
①  根据键找值的方式
步骤1:获取到map集合中所有的键,返回对应的set集合
步骤2:遍历键的集合,获取到每一个键
步骤3:通过键,找到对应的值
代码演示:
// 1、获取map集合中所有的键,返回对应的set集合
Set<String> keys = map.keySet();
// 2、遍历键的集合,获取到每一个键
for (String key : keys) {
// 3、通过键,找到对应的值
Student s = map.key(key);
syso...
}

②  根据根据键值对对象找键和值的方式
步骤1:获取map集合中所有的键值对元素,返回对应的set集合
步骤2:遍历键值对元素集合,获取到每一个键值对元素对象
步骤3:通过键值对元素对象,获取对应的键和对应的值
代码演示:
// 1、获取map集合中所有的键值对元素,返回对应的set集合
Set<Map.Entry<String, Student>> entrySet = map.entrySet();
// 2、遍历键值对元素集合,获取到每一个键值对元素对象
for (Map.Entry<String, Student> entry : entryKey) {
// 3、通过键值对元素对象,获取对应的键和对应的值
String key = entry.getKey();
Student s = entry.getValue();
syso...
}

【015】阐述下 HashMap 和 LinkedHashMap 的特点?
答:
HashMap                  :map的子集合,底层是哈希表结构,HashMap集合中的key不能重复
LinkedHashMap:map的子集合,底层是哈希表+链表结构,并且key不能重复

【016】Collections中常用的方法有哪些?
答:
static <T> void sort(List<T> list)        :排序
static void shuffle(List<?> list)                :将集合中的元素存储位置随机打乱

3 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
回复 使用道具 举报
都是经典笔试题啊!顶起我大黑马!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马