6.List集合去重原理
1.UML
2.集合框架
Connection:
集合框架的顶级接口
set和list的父接口
不是map的父接口
3.List集合
特点:增删改查,有序,可重复
public class Demo {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(“a”);
list.add(“b”);
list.add(“c”);
System.out.println(“现有的集合元素:” + list);
list.add(“d”);// 增加
System.out.println(“现有的集合元素:” + list);
System.out.println(list.add(“c”));// 增加,返回true
System.out.println(list.remove(0));// 删除,根据下标删除,返回下标元素
System.out.println(“现有的集合元素:” + list);
System.out.println(list.get(0));// 查询,根据下标查询
list.set(0, “d”);// 修改
System.out.println(“现有的集合元素:” + list);
}
}
输出结果如下:
说明有序且可重复
遍历方式
for循环,代码如下
// 使用for循环遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
foreach遍历,代码如下
// 使用foreach遍历
for (String s : list) {
System.out.println(s);
}
迭代器iterater遍历,代码如下
// 使用迭代器遍历(和数据库取数据一样,
Iterator it = list.iterator();
while (it.hasNext()) {// 判断条件
System.out.println(it.next());// 是否有下一个
}
4.LinkedList
实现队列,特点:先进先出,一次只能取一个
实现堆栈,特点:反向输出
代码如下:
public class Demo2 {
public static void main(String[] args) {
LinkedList list=new LinkedList<>();
Dl d=new Dl(list);
d.push(“a”);
d.push(“b”);
d.push(“c”);
/**
-
队列的特点 先进先出
-
一次只能取一个
-
堆栈的特点 反向输出
*/
System.out.println(d.pop());
System.out.println(d.pop());
System.out.println(d.pop());
}
}
//队列
class Dl{
LinkedList ll=null;
public Dl(LinkedList ll){
this.ll=ll;
}
//从容器中取元素
public String pop() {
return ll.removeFirst();//堆栈,removeLast
}
public void push(String s) {
ll.add(s);
}
}
队列输出为abc,堆栈输出为cba
5.增长因子论证
ArrayList集合底层是数组结构,他是“可变数组” 一旦超过默认数组长度,会自动扩容 扩容因子为0.5
代码如下:
public class Demo3 {
public static void main(String[] args) throws SecurityException, Exception{
ArrayList list = new ArrayList<>();
for (int i = 1; i < 101; i++) {
System.out.println(i);
list.add(i);
printgetElementDateLength(list);
}
}
private static void printgetElementDateLength(ArrayList list)throws Exception,SecurityException{
Field f=list.getClass().getDeclaredField(“elementDate”);
f.setAccessible(true);
Object[] elementDate =(Object[]) f.get(list);
System.out.println(“目前list集合底层存储数据的数组长度:”+elementDate.length);
}
}
输出结果为:
6.List集合去重原理
判断是否重复的方法:
去重原理:
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
img-X8v6oH8s-1714937884209)]
[外链图片转存中…(img-TSuK2ILY-1714937884210)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!