一.定义
Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组 接口 interfaces 和其实现类 classes 。
其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD 。
二. 面试题:(体现其重要性)
腾讯-Java后台开发面经
1. HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么?
2. HashSet 和 HashMap 的区别是什么?
3. HashMap 是线程安全的么?那需要线程安全需要用到什么?
阿里巴巴-Java后台开发面经
1. ArrayList 和 LinkedList 的区别是什么?
2. 有了解过 HashMap 的具体实现么?
3. HashMap 和 ConcurrentHashMap 哪个效率更高?
今日头条-Java后台开发面经
1. 编程题:判断一个链表是否是一个回文链表。
2. Redis 的 zset 类型对应到 java 语言中大致是什么类型?
3. hashCode 主要是用来做什么用的?
三.接口基本关系:
list:线性结构
set:元素不能重复
queue:队列
deque:双端队列
map:k—v结构 其中sortedmap为有序的map
四.集合中的部分方法:
示例:
import java.util.Collection;//务必引入包
import java.util.ArrayList;//
import java.util.Arrays;//
public class Demo {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();//实例化方式 与接口不可实例化有关
System.out.println(list.size());//method
System.out.println(list.isEmpty());//method
list.add("我");
list.add("爱");
list.add("Java");
System.out.println(list.size());
System.out.println(list.isEmpty());
Object[] array = list.toArray();//将结果转化为数组
System.out.println(Arrays.toString(array));
for (String s : list) {
System.out.println(s);//遍历打印list的一种方式
}
list.remove("爱");//method
for (String s : list) {
System.out.println(s);
}
list.clear();//method
System.out.println(list.size());
System.out.println(list.isEmpty());}
}
/*运行结果:
0
true
3
false
[我, 爱, Java]
我
爱
Java
我
Java
0
true
public static void main4(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("hello1");
collection.add("hello2");
collection.add("hello3");//
System.out.println(collection);
//存放到数组最后的
public static void main1(String[] args) {
Collection<String> collection = new ArrayList<>();
Collection<String> collection2 = new LinkedList<>();
Collection<String> collection3 = new Stack<>();
ArrayList<String> arrayList = new ArrayList<>();//顺序表
arrayList.add("hello");
ArrayList<Integer> arrayList2 = new ArrayList<>();//顺序表
arrayList2.add(1);
ArrayList<Double> arrayList3 = new ArrayList<>();//顺序表
List<String> arrayList4 = new ArrayList<>();
}
}
五.map中的部分方法
import java.util.Map;//同理 得引入包
import java.util.HashMap;
public class Demo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();//map实例化方式 此处key value均为string类型System.out.println(map.size());//method
System.out.println(map.isEmpty());//method
System.out.println(map.get("作者"));//根据作者查找value 由于未定义其对应的value 此处为null
System.out.println(map.getOrDefault("作者", "佚名"));//根据指定的k查找对应的v 没有找到用默认//值代替
System.out.println(map.containsKey("作者"));//判断是否包含key
System.out.println(map.containsValue("佚名"));//判断是否包含value
map.put("作者", "鲁迅");//将键值对放入map
map.put("标题", "狂人日记");
map.put("发表时间", "1918年");
System.out.println(map.size());//method
System.out.println(map.isEmpty());//method
System.out.println(map.get("作者"));
System.out.println(map.getOrDefault("作者", "佚名"));//更新value为佚名 复写value
System.out.println(map.containsKey("作者"));
System.out.println(map.containsValue("佚名"));
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey());//map遍历打印的一种方式//System.out.println(map)也可
System.out.println(entry.getValue());
}
}
}
运行结果:
0
true
null
佚名
false
false
3
false
鲁迅
鲁迅
true
false
作者
鲁迅
发表时间
1918年
标题
狂人日记