Java之集合类详解,java高级工程师面试问题大全及答案大全

本文介绍了Java编程中List、HashSet、TreeSet和HashMap的基本操作,包括添加元素、获取大小、遍历以及比较器的使用。内容涵盖了集合的添加、删除、查找和排序功能,适用于初级到中级Java开发者的学习参考。
摘要由CSDN通过智能技术生成

list.add(0);

list.add(3333);

list.add(8888);

System.out.println(list.size());

/* 遍历list */

for (Integer integer : list) {

System.out.println(integer);

}

/* 获取第一个元素 ,即header的next域*/

System.out.println(“第一个元素是:” + list.getFirst());

/获取最后一个元素,即header的previous域/

System.out.println(“最后一个元素是:”+list.getLast());

}

}

3、hashset

public static void main(String[] args) {

Set set = new HashSet();

set.add(“a”);

set.add(“b”);

System.out.println(set);

Student stu= new Student(18, “小名”, 60);

set.add(stu);//调用第一个对象的hashcode方法 调 equals

set.add(new Student(19, “小明”, 60));

set.add(new Student(19, “小明”, 60));

set.add(new Student(20, “小明”, 61));

System.out.println(set);

}

4、treeset

import java.util.ArrayList;

import java.util.HashSet;

import java.util.TreeSet;

/**

  • 使用treeset存放一组学生成绩

  • 1、可以自动排序(系统类 自然排序)

  • 2、不可重复(去重)

  • 3、只能存放一种数据类型

  • —存放到 treeset中的元素必须要具有比较能力

  • 调用compareTo() 如果得到的结果为0 , 两个元素相等

  •  1 ---》排到后面
    
  •  -1 --->排到前面
    
  • hashset:–>hashtable(哈希表)

  • treeset:–>二叉树,红黑树算法

  • 每存入一个元素就会调用一次compareTo方法

  • @author Administrator

*/

import java.util.Comparator;

/**

  • 外部比较器,当系统类提供的比较规则满足不了需求时使用

  • 1、自己创建一个比较器 实现 Comprator接口 ,添加一个泛型(需要比较的数据类型)

  • 2、重写comprae方法,用来比较,参数是两个需要比较的对象

  • @author Administrator

*/

public class MyStrCompartor implements Comparator{

@Override

public int compare(String o1, String o2) {

//按照字符串长度排序

return o1.length() - o2.length();

}

}

public class TestTreeSet02 {

public static void main(String[] args) {

//使用外部比较器,

//1 拿到比较器的对象

MyStrCompartor mcom = new MyStrCompartor();

//2在创建集合时,调用有参的构造方法,把比较器传进去

//3、在treeset中添加元素时,会优先调用自定义比较器的方法

//treeset专用

TreeSet ts = new TreeSet(mcom);

// ts.add(20);//自动装箱

// ts.add(1);

// ts.add(100);

// ts.add(7);

// ts.add(8);

// ts.add(100);

System.out.println(ts);

//需求:不希望按照系统的排序来排列

//自己创建一个比较规则

ts.add(“xiaomi32313”);

ts.add(“zhangliguo5”);

ts.add(“asima1”);

ts.add(“baibaibai4”);

ts.add(“sansan2”);

// ts.add(new Student(“yushen”, 19, 19));

// ts.add(new Student(“xiaoming”, 19, 19));

// ts.add(new Student(“axiaoming1”, 19, 18));

System.out.println(ts);

}

}

5、hashmap

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

/**

  • HashMap的使用

  • @author erqing

*/

public class MapTest {

public static void main(String[] args) {

/* 初始化map */

Map<String, Integer> map = new HashMap<String, Integer>();

System.out.println(“HashMap的初始值:” + map.size());

System.out.println(“HashMap是否为空:” + (map.isEmpty() ? “是” : “否”));

/* 想map中添加元素 */

map.put(“erqing”, 1);

map.put(“niuniu”, 2);

map.put(“egg”, 3);

System.out.println(map.size());

;

System.out.println(“HashMap是否为空:” + (map.isEmpty() ? “是” : “否”));

/* 遍历HashMap中的元素 */

Set set = map.keySet();

for (String s : set) {

System.out.println(s + " " + map.get(s) + " " + “hashcode:”

  • s.hashCode());

}

/检测是否含有某个Key/

System.out.println(map.containsKey(“egg”));

/检测是否含有某个Value/

System.out.println(map.containsValue(2));

/打印hashCode/

System.out.println(map.hashCode());

}

}

/*

输出:

HashMap的初始值:0

HashMap是否为空:是

3

HashMap是否为空:否

niuniu 2 hashcode:-1045196352

egg 3 hashcode:100357

erqing 1 hashcode:-1294670850

true

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

Java中高级面试高频考点整理

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

最后分享Java进阶学习及面试必备的视频教学

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

.(img-xtRQtopb-1711139210883)]

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

[外链图片转存中…(img-6DSkN7qx-1711139210884)]

Java中高级面试高频考点整理

[外链图片转存中…(img-7DphzV0C-1711139210885)]

[外链图片转存中…(img-ItGla8Zk-1711139210885)]

最后分享Java进阶学习及面试必备的视频教学

[外链图片转存中…(img-7DcBg679-1711139210885)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值