【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) :将集合中的元素存储位置随机打乱
|
|