Java中的集合框架及其背后的数据结构

一.定义

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年
标题
狂人日记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值