2017/12/28-1集合和多线程

1、---|Collection: 单列集合
---|List: 有存储顺序, 可重复
---|ArrayList: 数组实现, 查找快, 增删慢
由于是数组实现, 在增和删的时候会牵扯到数组
增容, 以及拷贝元素. 所以慢。数组是可以直接
按索引查找, 所以查找时较快
---|LinkedList: 链表实现, 增删快, 查找慢
由于链表实现, 增加时只要让前一个元素记住自
己就可以, 删除时让前一个元素记住后一个元
素, 后一个元素记住前一个元素. 这样的增删效
率较高但查询时需要一个一个的遍历, 所以效率较低

---|Vector: 和ArrayList原理相同, 但线程安全, 效率略低
和ArrayList实现方式相同, 但考虑了线程安全问
题, 所以效率略低
---| Set接口 无序,不可以重复的集合
---|HashSet 线程不安全,存取速度快。底层是以hash表实现的。

---|TreeSet 红-黑树的数据结构,默认对元素进行自然排序(String)。
如果在比较的时候两个对象返回值为0,那么元素重复。
2、 ---| Map 接口 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

---| HashMap 采用哈希表实现,所以无序

---| TreeMap 可以对健进行排序

---|Hashtable:底层是哈希表数据结构,线程是同步的,不可以存入null键,null值。效率较低,被HashMap 替代。

---|HashMap:底层是哈希表数据结构,线程是不同步的,可以存入null键,null值。要保证键的唯一性,需要覆盖hashCode方法,
和equals方法。

---|LinkedHashMap:该子类基于哈希表又融入了链表。可以Map集合进行增删提高效率。

---|TreeMap:底层是二叉树数据结构。可以对map集合中的键进行排序。需要使用Comparable或者Comparator 进行比较排序。
return 0,来判断键的唯一性。

3、如果调用remove之前没有调用next是不合法的,会抛出IllegalStateException;

4、注意同时重写equals方法和hashcode方法,要想使用toString方法直接显示集合,要注意重写;

5、----| Comparable
compareTo(Object o) 元素自身具备比较性
----| Comparator
compare( Object o1, Object o2 ) 给容器传入比较器

TreeSet集合排序的两种方式:一,让元素自身具备比较性。也就是元素需要实现Comparable接口,覆盖compareTo 方法。这种方式也作为元素的自然排序
,也可称为默认排序。
二,让容器自身具备比较性,自定义比较器。需求:当元素自身不具备比较性,或者元素自身具备的比较性不是所需的。
那么这时只能让容器自身具备。
定义一个类实现Comparator 接口,覆盖compare方法。并将该接口的子类对象作为参数传递给TreeSet集合的构造函数。
当Comparable比较方式,及Comparator比较方式同时存在,以Comparator比较方式为主。
6、遍历Map的方式:
将map 集合中所有的键取出存入set集合。
Set<K> keySet() 返回所有的key对象的Set集合
再通过get方法获取键对应的值。
values() ,获取所有的值.
Collection<V> values()不能获取到key对象

Map.Entry对象 推荐使用 重点 Set<Map.Entry<k,v>> entrySet()将map 集合中的键值映射关系打包成一个对象Map.
Entry对象通过Map.Entry 对象的getKey,getValue获取其键和值。
7、一个任务一个进程,一个进程可以有多个线程;
8、同步是一种机制,防止访问同一个资源时,造成死锁或结果不正确;可以创建同步方法,也可以用同步代码块;
9、多线程的实现方式:一、继承Thread类,重写run(),使用时调用start();
二、实现Runable接口,重写run();使用时把他的实现类的引用传给Thread的构造方法作为参数;

原文地址:https://www.cnblogs.com/loong996/p/8135015.html

时间: 2024-08-07 01:47:41

2017/12/28-1集合和多线程的相关文章

JS DOM(2017.12.28)

一.获得元素节点的方法 document.getElementById()    根据Id获取元素节点 document.getElementsByName()    根据name获取元素节点   遍历出来的是一个数字 document.getElementsByTagName()    根据HTML标签名获取元素节点,注意选择器返回的是一个NodeList对象,能根据索引号选择其中1个,可以遍历输出. document.getElementsByClassName()    根据class获取

12.28 第三关练习题(下)

12.28 第三关练习题(下) 内容: 1.  默认awk不认识{} 加上--re-interval选项 2.  grep  -i   忽略大小写 3.  常用的DNS服务器 4.  企业案例:企业网站中病毒从发现到解决过程(6个步骤) 第1章 找出网卡配置文件中IPADDR的行 方法一: [[email protected] oldboy]# egrep '^IP.*[0-9]{2,}' /etc/sysconfig/network-scripts/ifcfg-eth0 -o IPADDR=1

归档: 2017/12

利用反射机制实现反编译java程序 2017-12-20 找到所需jar包对应maven依赖的方法 2017-12-04 Thread与Runnable实现多线程区别,run与start方法启动区别 2017-12-01 System.arraycopy()实现数组之间的复制 2017-12-01 原文:大专栏  归档: 2017/12 原文地址:https://www.cnblogs.com/sanxiandoupi/p/11631278.html

【第三组】冲刺会议 2017.7.28

冲刺会议 日期:2017.7.28 开发小组:Geomestry 冲刺经理:程立智 成员: 程立智 李明伦 郑昊 蔡镇泽 温志成 汪涵 成员:程立智 完成工作:实现主界面动画,修正多语言bug,添加BGM音量控制和播放暂停功能 所遇问题:通宵贼困 下一步工作: 继续实现各种界面的细节和前后端的联系,解决大家遇到的各种系统bug 成员:李明伦 完成工作:写中英文关卡说明 所遇问题:人工翻译比较困难 下一步工作:具体实现关卡 成员:郑昊 完成工作:做主界面图片,option自适应,滑块功能 所遇问题

团队作业4——第一次项目冲刺(Alpha版本)2017.4.28

2017.04.28 天气晴朗 东风3级. 时间:上午 9:35 ---10:10分 地点:陆大二楼 会议内容:实验室报修系统项目冲刺Alpha版的的最后一天,大家对现在项目的进程进行了讨论,阐述了各自遇到的困难,以及项目到现在为止一些不尽人意的地方 1:每日讨论图片(拍摄者小组成员  201421123069 黄睿) 2.任务分解图: 3.任务分配: 今天的整体分工如下: 201421123069黄睿:  整理这周相关记录,进行当日小结进行单元测评 反馈测评报告: 201621123076林俊

java一周学习记录(2017/12/2)

姓名:Danny                               日期:2017/12/2 任务 日期 听课 编程程序 阅读课本 准备考试 考试 周六加课 日统计 周日 周一 30 120 150 周二 50 140 190 周三 150 150 150 周四 180 180 周五 100 180 280 周六 480 480

2017.12.02【NOIP提高组】模拟赛A组

2017.12.02[NOIP提高组]模拟赛A组 T1 3555[GDKOI2014模拟]树的直径 T2 3542[清华集训2014]冒泡排序 T3 3486[NOIP2013模拟联考10]道路改建(rebuild) T1 树直径的一个性质,两棵树合并,形成新的树的直径的两个端点为原树中的四个端点之二. 可以用反证法证明.用此性质本题就变成了lca裸题了 Code #include<cstdio> #include<cstring> #include<cmath> #i

2017.12.09【NOIP提高组】模拟赛A组

2017.12.09[NOIP提高组]模拟赛A组 T1 3489. [NOIP2013模拟联考11]数列的GCD(gcd) T2 3500.[NOIP2013模拟联考15]物语(monogatari) T3 3501.[NOIP2013模拟联考15]消息传递(news) 吐槽:这次的题好像有点水啊,但最简单的第二题都给打挂啦!!(数组开小了) T1 本套题中最难的题.考虑dp 设f[i]是b[1],b[2]...b[N]的最大公约数的数目,g[i]是b[1],b[2]...b[N]的公约数的数目

2017.12.12 每日黑科技

[碧桂园信管中心] [资讯与趋势] 1.WISE2017新商业大会开幕? 新商业公司的特点则是创新带来的高成长,并不断突破边界.融合创新,比如出行的滴滴,吃饭的美团.做智能手机的小米,信息阅读的今日头条,这些公司不仅快速改变了我们的生活,而且都是在几年内就成长为百亿美金估值的公司.关注新商业大会. http://36kr.com/p/5107584.html 2.<企业家>杂志最佳作者: 2018 年 18 个值得观测的营销趋势 市场营销趋势正在发生急剧改变,它几乎影响着每个公司.要想使你的公

2017.12.03

2017.12.03 贪心 1.金银岛 思路:既然每一种金属都是可以任意切割的,那么就可以先求出每一种金属的单位价值,把它进行排序,从单位价值最大的开始装起,只要背包还有空间就全部装进背包,如果装不完就把剩下的空间全部装这种物体. for(i=1;i<=s;i++){ scanf("%lf%lf",&gold[i][1],&gold[i][2]); gold[i][3]=gold[i][2]/gold[i][1]; } for(i=1;i<s;i++){ i