LinkedList
LinkedList 包含addFirst() 、addLast()方法,分别表示向最开头和最结尾放数据。
import java.util.*;
public class Demo7_3 {
public static void main(String[] args) {
LinkedList ll = new LinkedList();
Emp emp1 = new Emp("sa1", "aa", 1.2f);
Emp emp2 = new Emp("sa1", "bb", 1.2f);
ll.addFirst(emp1);
ll.addFirst(emp2);
for (int i = 0; i < ll.size(); i++) {
System.out.println(((Emp)ll.get(i)).getName());
}
}
}
输入出结果 bb
aa
Vector集合
特点: Vector是向量的意思。
import java.util.*;
public class Demo7_3 {
public static void main(String[] args) {
Vector vv=new Vector();
Emp emp1=new Emp("1","aa",1.2f);
vv.add(emp1);
for (int i = 0; i < vv.size(); i++) {
Emp emp=(Emp)vv.get(i);
System.out.println(emp.getName());
}
}
}
输出:aa
HashMap集合
例一
import java.util.*;
public class Demo7_3 {
public static void main(String[] args) {
//创建一个HashMap
HashMap hashMap=new HashMap();
Emp emp1=new Emp("s001","aaa",3.4f);
Emp emp2=new Emp("s002","bbb",3.4f);
//将emp放入到hashMap
hashMap.put("s001", emp1);
hashMap.put("s002", emp2);
//如果
//如果你要查找编号是s002的人
if(hashMap.containsKey("s002")){
System.out.println("有这个员工");
//如何取出
Emp emp=(Emp)hashMap.get("s002");
System.out.println("员工名字:"+emp.getName());
}else{
System.out.println("没有这个员工");
}
}
}
如果 key重复,后面的就会替代前面出现的
例2
import java.util.*;
public class Demo7_3 {
public static void main(String[] args) {
// 创建一个HashMap
HashMap hashMap = new HashMap();
Emp emp1 = new Emp("s001", "aaa", 3.4f);
Emp emp2 = new Emp("s002", "bbb", 3.4f);
// 将emp放入到hashMap
hashMap.put("s001", emp1);
hashMap.put("s002", emp2);
// 如果你要查找编号是s002的人
if (hashMap.containsKey("s002")) {
System.out.println("有这个员工");
// 如何取出
Emp emp = (Emp) hashMap.get("s002");
System.out.println("员工名字:" + emp.getName());
} else {
System.out.println("没有这个员工");
}
// 遍历HashMap中所有的key和value
Iterator it = hashMap.keySet().iterator();
// 返回一个boolean值
while (it.hasNext()) {
// 取出key
String key=it.next().toString();
//通过key取出value
Emp emp=(Emp)hashMap.get(key);
System.out.println("名字:"+emp.getName());
System.out.println("薪水:"+emp.getSal());
}
}
}
输出:有这个员工
员工名字:bbb
名字:bbb
薪水:3.4
名字:aaa
薪水:3.4
HashMap 和HashTable 用法上大致是一样的
相同点:HashMap 和HashTable都是java的集合类,都可以用来存放java对象,这是他们的相同点
区别:
一.历史原因:
二。同步性
HashTable是同步的。这个类中的一些方法,保证了HashTable中的对象是线程安全的 。而HashMap则是异步的因此,HashMap的对象不是线程安全的,因为同步的执行会影响执行效率,所以如果你不需要线程安全的集合,那么
使用HashMap是一个很好的选择, 这样可以避免由于同步带来的不必要的性能开销,从而提高效率。
三.值
HashMap可以让你将空值作为一个表的条目的key或value,但是hashTable是不能放入空值的。
ArrayList 和Vector区别
ArrayList与Vector都是java的集合类,都可以用来存放java对象,这是他们的相同点。
区别:
一。Vector是同步的。这个类中的一些方法保证了Vector中的对象时线程安全的,而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的,因为同步是要求会印象执行的效率,所以如果你不需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必要开销。
二。数据增长。
总结 集合
java的设计者给我们提供了这些集合,在后面的编程中时十分重要的。总结如下
1)如果要求线程安全,使用Vector HashTable
2)如果不要求线程安全,应使用ArrayList,LinkedList,HashMap
3)如果要求键值对,则使用HashMap,HashTable
4)如果数据量很大,又要线程安全,考虑Vector
通过此题联系对List,Map,Set的不同
大圣准备带小猴子去练操,但是队伍实在太不成队伍了,非常不满,唐僧建议用java里面的容器和接口区装小猴,重新组织队伍,
第一关,设计程序,使用List接口来容纳10只猴
第二关,用set来装载10只猴,对他们可以执行查找和替换功能
第三关,用Map接口来装载10只猴,对他们执行最快的查找和替换功能
如果做一个词典(英汉),不能用数据库,你会怎么样实现?
分享到:
相关推荐
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
ArrayList、LinkedList、Vector区别简介。
NULL 博文链接:https://lf6627926.iteye.com/blog/1297695
LinkedList:如果是增删插多,用LinkedList Vector:如果是有线程安全要求用Vector 如果是不能存放重复的元素,用Set接口下的实现类 HashSet:如果没有任何排序要求,用HashSet,因为效率高 TreeSet: 如果有排序...
ArrayList、LinkedList、 Vector、Map 用法比较
能学到什么:ArrayList的源码分析,自动扩容和自动缩容的源码分析,相关参数的深度解析,从是什么,为什么,怎么做三个角度进行讲解,用通俗易懂的白话进行介绍,LinkedList和Vector以及ArrayList的区别以及使用场景...
ArrayList Vector LinkedList 区别与用法.
1. List概述List,就如图名字所示一样,是元素的有序列表 3. ArrayList示例[java] view plain copy public sta
Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是
第四题 ArrayList LinkedList Vector的区别.pdf docker讲得最清楚.doc Dubbo是什么?能做什么?.doc java 基于TCP协议的Socket编程和通信.doc Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别.doc MySQL...
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
对比Vector、ArrayList、LinkedList1
Java ArrayList Vector LinkedList map区别 各种集合的区别 写得非常详细
LinkedList的使用.pdf
这是我从JDK中拿出的Arraylist,Vector,LinkedList源码,自己看源码的时候弄出来的,并写了一点自己的分析,仅供源码分析者使用
ArrayList、Vector、LinkedList 的区别.docx
LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...
LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...
LinkedList Vector 这三个都是list,至于什么是子类,我们会在对象那章去普及。他们三个相同点有: 都是list的实现类 都是有序的,也就是可以像数组那样通过下标查找元素 都没有长度限制,开辟的内存空间动态改变...
Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)