java学习第十二天:集合

一、看招聘网,招聘条件,自己不会的可以学。
1.大数据工程师:
2.etl工程师
3.数仓工程师
4.spark工程师
二、集合框架及泛型:
掌握java
运行

maven工程
springboot
面试问题
jvm
设计模式

三、本天内容:
1.集合面试时提问超过60%。
2、集合与数组区别:数组长度固定,类型固定。 集合:集合类型不固定,长度可变。
3.集合体系结构:Collection 单列集合
–Set 无序的(存的位置),唯一的。
–HashSet
–TreeSet 排序的(大小排列)底层是二叉树。
–List 有序的,不唯一.
–ArrayList 底层是动态数组,使用场景:查询多,增删慢。
–LinkedList 底层是链表结构,使用场景:查询慢,增删快。
–Map 双列集合:
–HashMap
–TreeMap 底层是二叉树。可以排序。
4.collection接口规定的方法:
1.add(Object obj);
2.addAll(Collection c);
3.remove(Object obj);
4.clear();
5.isEmpty()
6.size();
7.contains();
8.toArray();
9.iterator();
5.list接口的方法:
6.equals方法与hashCode()方法要同时重写。

/**
 * 三、去除ArrayList集合中的重复元素。
 */
package HomeWork;
import java.util.*;
public class Test3 {
    private int id;
    private String name;
    public Test3(int id,String name){
        this.id=id;
        this.name=name;
    }
    @Override
    public int hashCode() {		//重写hashCode()方法
        return this.id;
    }
    @Override
    public boolean equals(Object obj) {		//重写equals方法。
        Test3 t=(Test3)obj;
        return (this.id==t.id )&& (this.name.equals(t.name));
    }
    public static void main(String[] args) {
        Set<Test3> hs=new HashSet<Test3>();
        ArrayList<Test3> al=new ArrayList<Test3>();
        hs.add(new Test3(1,"第一"));
        hs.add(new Test3(2,"第二"));
        hs.add(new Test3(3,"第三"));
        hs.add(new Test3(1,"第一"));
        hs.add(new Test3(2,"第二"));
        hs.add(new Test3(3,"第三"));
        hs.add(new Test3(1,"第一"));
        hs.add(new Test3(1,"第一"));
        hs.add(new Test3(2,"第二"));
        hs.add(new Test3(1,"第一"));
        al.addAll(hs);
        for (Test3 t: al) {
            System.out.println("用户ID:"+t.id+"\n用户名:"+t.name);
        }
    }
}


7.HashSet类:无序,
唯一性:去重:必须重写equals,HashCode方法。

8.TreeSet类:无序,唯一,去重,排序.
如果使用排序集合,必须实现Comparable接口,并重写ComparaTo方法。
**注意:**如何存入自定义对象:
1.为了保证唯一性,可以根据业务重写HashCode()和equals()方法。
2.为了实现排序,自定义对象必须实现Comparable接口,重写comparaTo方法。

快捷键:shift +tab
alt+鼠标左键 列编辑
shift+ctrl+/ 多行注释。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值