`

LinkedList Vector

    博客分类:
  • JAVA
 
阅读更多

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只猴,对他们执行最快的查找和替换功能

如果做一个词典(英汉),不能用数据库,你会怎么样实现?



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics