数据结构组数相关
来源:互联网 发布:阿里云服务器受到攻击 编辑:程序博客网 时间:2024/04/20 11:42
1.结构图
Collection 有序的集合 ├------List 接口 │ ├LinkedList 链表 (异步, 线程非安全) │ ├ArrayList 顺序结构动态数组类 (异步, 线程非安全) │ └Vector 向量(同步, 线程安全) │ └Stack 栈 (后进先出) └Set 接口 Map 接口 ├Hashtable (同步, 线程安全) ├HashMap (异步, 线程非安全) └WeakHashMap
2.List, 有序,接口,允许有相同元素ArrayList,数组结构,添加删除需要移动它之后的数据,遍历可以用二分,可变大小,允许为nullLinkedList,链表结构,添加删除数据不用移动数据,只能顺序遍历Vector,Set,不包含重复元素,最有有一个null元素HashMap,允许为null,效率高HashTable,底层是哈希表,不可以存null因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMapTreeMap,底层是二叉树,线程不同步,可以用于给map集合中的键进行排序3.如何遍历Collection中的每一个元素
不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下: Iterator it = collection.iterator(); // 获得一个迭代子 while(it.hasNext()) { Object obj = it.next(); // 得到下一个元素 }
4.对list进行排序
/** * 对list进行排序 * @param list * @param by 排序项 * @param d 0、升序;1、降序 * @return */ public static List<HashMap<String, Object>> orderList( List<HashMap<String, Object>> list, String by, int d) { DefineComparator comparator = new DefineComparator(by, d); Collections.sort(list, comparator); return list; }
public class DefineComparator implements Comparator<HashMap<String, Object>> { private String order; private int direction;//0、升序,1、降序 public DefineComparator(String string, int dir) { super(); // TODO Auto-generated constructor stub order = string; direction = dir; } @Override public int compare(HashMap<String, Object> lhs, HashMap<String, Object> rhs) { // TODO Auto-generated method stub double one = Double.valueOf(lhs.get(order).toString()); double two = Double.valueOf(rhs.get(order).toString()); if(direction == 0){ if(one > two) return 1; if(one < two) return -1; }else if(direction==1){ if(one > two) return -1; if(one < two) return 1; } return 0; } public void setDir(int dir){ direction = dir; } }
5.keySet和entrySet
// 第一种取出方式keySet Set<Student> keySet = hm.keySet(); Iterator<Student> iterator = keySet.iterator(); while (iterator.hasNext()) { Student student = iterator.next(); String addr = hm.get(student); System.out.println(student + ":" + addr); }//第二种取出方式 entrySet Set<Entry<Student, String>> entrySet = hm.entrySet(); Iterator<Entry<Student, String>> iterator2 = entrySet.iterator(); while (iterator2.hasNext()) { Entry<Student, String> next = iterator2.next(); System.out.println(next.getKey()+":"+next.getValue()); }文章 http://blog.csdn.net/qq_26787115/article/details/51762397 Map,keySet,entrySet
0 0
- 数据结构组数相关
- 数据结构 相关
- 数据结构相关
- 十四、数据结构相关算法
- 进程相关的数据结构
- 数据结构相关经典题目
- 文件相关内核数据结构
- 文件相关内核数据结构
- BMP格式相关数据结构
- 数据结构相关名词
- VPN相关的数据结构
- 查找数据结构相关题目
- 进程相关的数据结构
- 进程相关的数据结构
- 文件相关内核数据结构
- 文件相关内核数据结构
- 一、数据结构相关基本概念
- SEH相关数据结构
- Castle Windsor 学习-----Installer的几种安装方式
- 工欲善其事必先利其器-前端实习简历篇
- Mysql异常:MySQLNonTransientConnectionException: No operations allowed after statement closed
- 每天一个 Linux 命令(49):at命令
- FFMPEG结构体分析:AVPacket
- 数据结构组数相关
- 内存四区
- postgres sql 备份还原
- Linux下安装配置Redis2.8
- Idea部署Web项目
- 我的科研生活2017-3-16
- JAVA ClassLoader 初探
- 传感器尺寸与像素密度对相片分辨率的影响
- javascript string操作