`

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

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



分享到:
评论

相关推荐

    ArrayList LinkedList Vector区别

    ArrayList LinkedList Vector 区别 ArrayList、LinkedList、Vector 是 Java 中常用的数据结构实现类,它们都实现了 List 接口,但它们在存储方式、性能、线程安全性等方面有着不同特点。 首先,ArrayList 和 ...

    ArrayList LinkedList Vector性能测试

    在Java编程语言中,ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们都在java.util包中,用于存储和管理对象的集合。这三个类都实现了List接口,提供了多种操作方法,但它们在内部实现和性能特性上有所...

    ArrayList LinkedList Vector性能对比

    ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们各自有特定的特性和使用场景。这里我们将深入探讨这三个类的性能对比,以及它们在不同操作下的表现。 ArrayList是基于动态数组实现的,它提供了随机...

    比较ArrayList、LinkedList、Vector1

    【ArrayList、LinkedList、Vector对比分析】 1. **List概述** List接口是Java集合框架中的重要组成部分,它是一个有序的集合,允许重复元素,并且保持插入顺序。List接口的实现类主要有ArrayList、LinkedList和...

    day016-list和set笔记以及代码.zip

    LinkedList:如果是增删插多,用LinkedList Vector:如果是有线程安全要求用Vector 如果是不能存放重复的元素,用Set接口下的实现类 HashSet:如果没有任何排序要求,用HashSet,因为效率高 TreeSet: 如果有排序...

    ArrayList Vector LinkedList 区别与用法.

    ### ArrayList、Vector、LinkedList 的区别与用法详解 在Java编程中,选择合适的数据结构对于程序的性能至关重要。本文将深入探讨ArrayList、Vector和LinkedList三种集合类的特点与使用场景,帮助开发者更好地理解...

    Java中的ArrayList的底层源码解读、LinkedList、Vector的区别介绍

    能学到什么:ArrayList的源码分析,自动扩容和自动缩容的源码分析,相关参数的深度解析,从是什么,为什么,怎么做三个角度进行讲解,用通俗易懂的白话进行介绍,LinkedList和Vector以及ArrayList的区别以及使用场景...

    ArrayList-LinkedList--Vector-Map.zip_vector

    在Java编程语言中,`ArrayList`、`LinkedList`、`Vector`和`Map`是四种常用的集合类,它们各自有着不同的特性和用途。本篇文章将深入探讨这些数据结构及其使用场景。 首先,我们来了解`ArrayList`。`ArrayList`是`...

    链表和数组的区别 数组和链表.pdf

    八、Vector、ArrayList和LinkedList Vector、ArrayList都是以数组的形式存储在内存中,所以查询效率高,新增和删除效率不高,Vector被Synchronized修饰,所以线程是安全的,ArrayList线程不安全。LinkedList则以...

    ii0#book-3#ArrayList 、 LinkedList 、 Vector 的底层实现和区别1

    Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是

    ArrayList、Vector、LinkedList 的区别.docx

    ArrayList、Vector、LinkedList 的区别 在 Java 集合框架中,ArrayList、Vector、LinkedList 是三个常用的 List 实现类,虽然它们都实现了 List 接口,但是它们在继承关系、实现接口、底层数据结构、扩容机制等方面...

    JDK1.6中Arraylist,Vector,LinkedList源码

    在Java编程语言中,ArrayList、Vector和LinkedList是三种常见的动态数组实现,它们都属于集合框架中的List接口。这里我们将深入探讨这三种数据结构的源码,理解它们的内部实现、性能特性和适用场景。 首先,...

    对比Vector、ArrayList、LinkedList1

    在Java集合框架中,Vector、ArrayList和LinkedList是三种常见的List接口实现类,它们各自具有不同的特点和适用场景。下面我们将详细对比这三个类的区别。 1. **Vector** - **线程安全**:Vector是线程安全的,因为...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    第四题 ArrayList LinkedList Vector的区别.pdf docker讲得最清楚.doc Dubbo是什么?能做什么?.doc java 基于TCP协议的Socket编程和通信.doc Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别.doc MySQL...

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    Java 各种集合的区别ArrayList Vector LinkedList map区别

    今天,我们将深入了解 Java 中的集合类别,包括 ArrayList、Vector、LinkedList 和 Map 等。 ArrayList ArrayList 是一种基于数组的集合类别,它可以存储大量的数据。ArrayList 的特点是:它可以动态地增加或减少...

    第8讲 对比Vector、ArrayList、LinkedList有何区别1

    在Java集合框架中,Vector、ArrayList和LinkedList都是List接口的实现,它们提供了有序集合的功能,允许根据位置进行元素的添加、删除和查找。然而,它们在设计和性能上有着显著的区别。 首先,Vector是Java早期...

    使用LinkedList模拟堆栈

    在Java中,虽然ArrayList和Vector类也可以用来实现堆栈,但LinkedList由于其特性,如高效地添加和删除元素,更适合作为堆栈的基础。 以下是使用LinkedList模拟堆栈的步骤: 1. 首先,我们需要创建一个LinkedList...

    Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)

    Java容器集合(equals和hashCode+基础数据结构+ArrayList+Vector和LinkedList) Java容器集合是Java中的一种基础数据结构,用于存储和管理数据。其中,equals和hashCode方法是Java容器集合中两个非常重要的方法,...

Global site tag (gtag.js) - Google Analytics