当前位置: 首页 > news >正文

建设网站的公司广州上海十大外贸公司

建设网站的公司广州,上海十大外贸公司,枣庄网站建设哪家强,小程序建站网站1、集合类图 1)ArrayList与LinkedList 区别 LinkedList 实现了双向队列的接口,对于数据的插入速度较快,只需要修改前后的指向即可;ArrayList对于特定位置插入数据,需要移动特定位置后面的数据,有额外开销 …

1、集合类图

1)ArrayList与LinkedList 区别

LinkedList 实现了双向队列的接口,对于数据的插入速度较快,只需要修改前后的指向即可;ArrayList对于特定位置插入数据,需要移动特定位置后面的数据,有额外开销

public class Test {public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("a");list.add("b");list.add("c");list.add(1,"d");//相对LinkedList插入速度较慢System.out.println(list);System.out.println(list.get(1));//直接通过数据下标index获取数据,查询速度相对LinkedList较快List<String> linkedList = new LinkedList<>();linkedList.add("a");linkedList.add("b");linkedList.add("c");linkedList.add(2,"d");//相对ArrayList插入速度较快System.out.println(linkedList.get(1));//需要遍历整个队列,查询速度相对ArrayList较慢System.out.println(linkedList);}
}

2)Set 存储的元素不重复,元素重复的标准如下:

i:先判断集合元素的hashCode是否在集合里面存在,不存在认为是不重复的,直接插入进集合,插入集合的位置按照hash出来散列值排序
ii:如果集合元素的hashCode在集合里面存在,需要再判断集合元素的内容是否一致(存在hash冲突,即不同的元素hash后产生相同的hashCode),调用equals方法,如果内容不一致,可以插入
iii:调用equals方法,如果内容一致,说明是重复,则不插入集合
import lombok.AllArgsConstructor;
import lombok.Data;import java.util.Objects;@Data
@AllArgsConstructor
public class Student {private String num;//学号private String name;private int age;@Overridepublic int hashCode() {return num.hashCode();//用学号计算hashCode}@Overridepublic boolean equals(Object o) { //学号、姓名、年龄完全一致才认为是相同学生if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && Objects.equals(num, student.num) && Objects.equals(name, student.name);}@Overridepublic String toString() {return this.hashCode() + "-Student{" +"num='" + num + '\'' +", name='" + name + '\'' +", age=" + age +'}';}
}
import java.util.*;public class Test {public static void main(String[] args) {Set<Student> set = new HashSet<Student>();/*** set集合里面内容不可重复,判断重复的标准是:* 1)先判断集合元素的hashCode是否在集合里面存在,不存在认为是不重复的,直接插入进集合,插入集合的位置按照hash出来散列值排序* 2)如果集合元素的hashCode在集合里面存在,需要再判断集合元素的内容是否一致(存在hash冲突,即不同的元素hash后产生相同的hashCode),*    调用equals方法,如果内容不一致,可以插入* 3)调用equals方法,如果内容一致,说明是重复,则不插入集合*/Student s1 = new Student("1", "张三", 18);//hashCode:49Student s2 = new Student("2", "李四", 19);//hashCode:50set.add(s1);set.add(s2);System.out.println(set);//[49-Student{num='1', name='张三', age=18}, 50-Student{num='2', name='李四', age=19}]Student s4 = new Student("1", "赵六", 18);//hashCode:49,此时集合中已经存在hashCode=49的元素boolean add = set.add(s4);//true hashCode与s1一致,但是内容与s1不同,可以插入System.out.println(set);//[49-Student{num='1', name='张三', age=18}, 49-Student{num='1', name='赵六', age=18}, 50-Student{num='2', name='李四', age=19}]Student s5 = new Student("1", "张三", 18);//hashCode:49,内容与s1完全一致,插入不成功add = set.add(s5);System.out.println(add);//false}
}

3)TreeSet 实现了SortedSet 接口,存放的元素可以按照自定义的顺序排序,示例如下:按照学生年龄升序排序

import java.util.*;public class Test {public static void main(String[] args) {Set<Student> set = new TreeSet<>((s1,s2) -> {return s1.getAge() - s2.getAge();//定义排序的集合,按照学生年龄升序排序});Student s1 = new Student("1", "张三", 20);Student s2 = new Student("2", "李四", 25);Student s3 = new Student("3", "李四", 18);set.add(s1);set.add(s2);set.add(s3);//[51-Student{num='3', name='李四', age=18}, 49-Student{num='1', name='张三', age=20}, 50-Student{num='2', name='李四', age=25}]System.out.println(set);}
}

2、映射类图:

1)HashMap、LinkedHashMap、TreeMap 区别

HashMap: 按照key hash后的值大小顺序存放元素;

LinkedHashMap:有链表特性,按照映射插入顺序存放元素

TreeMap:按照key的自然顺序或自定义排序key进行存放元素

示例代码如下:

import java.util.*;public class Test {public static void main(String[] args) {Map<String,Object> map = new HashMap<>();map.put("name","张三");map.put("age","18");map.put("num","001");//按照key-hash后的值大小顺序放入映射中System.out.println(map);//{num=001, name=张三, age=18}Map<String,Object> linkedMap = new LinkedHashMap<>();linkedMap.put("name","张三");linkedMap.put("age","18");linkedMap.put("num","001");//LinkedHashMap,有链表特性,可以保证插入的顺序就是映射的顺序System.out.println(linkedMap);//{name=张三, age=18, num=001}Map<String,String> treeMap = new TreeMap<String,String>((s1,s2) -> {return s2.compareTo(s1);//自定义排序,按照字符串降序排列});treeMap.put("A1","A1");treeMap.put("A2","A2");treeMap.put("B1","B1");System.out.println(treeMap);//{B1=B1, A2=A2, A1=A1}//遍历treeMap.forEach((key,value) -> {System.out.println(key + ":" + value);});}
}

http://www.sczhlp.com/news/85069/

相关文章:

  • 兰州网站设计公司有哪些信誉好的网站建设
  • 网站维护是什么意思网站建设要素的核心内容
  • 做阿里云网站网站构成要素
  • 来此加密实现SSL证书自动申请+自动部署
  • lc1022-从根到叶的二进制数之和
  • 2025.9.9——1橙
  • SIM /api/function/execute 代码执行漏洞
  • 南京网站制作报价上海的建设网站制作
  • 网络信息安全网站开发教程wordpress排版分栏
  • 建网站什么语言最便宜的免费建站
  • 黄石做网站建设的福田做网站怎么样
  • 网站建设培训ppt做一个微网站平台
  • 做网站如何放入图像海外网络推广招聘
  • 自己动手建立网站3运营管理的主要内容有哪些
  • 不是网站建设必须经历的过程常见的网络营销方法及其效果
  • 湖南省网站长沙建企聘企业管理有限公司
  • c .net网站开发网站前端建设需要学会什么
  • linux下安装pycharm时,中文无法显示的问题
  • 做图书网站的代码微网站免费搭建平台
  • 做医药行业找药的网站网站做程序
  • 苏州教育网站建设秦皇岛做网站外包
  • 一键优化win10端点seo博客
  • 网站建设人文环境美食网站首页设计
  • dz网站首页html代码在哪品牌设计公司名称大全
  • 怎么做网站静态布局程序员自己建站赚钱
  • 兴国做网站php模板建站
  • 建筑招聘网站有哪些三亚房产网站建设
  • 晋中市住房保障和城乡建设局网站trinseo公司
  • 网站开发 超速云做自己的网站后台
  • 基于漏斗模型网站关键路径分析服务器租用收费标准