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 是 Java 中常用的数据结构实现类,它们都实现了 List 接口,但它们在存储方式、性能、线程安全性等方面有着不同特点。 首先,ArrayList 和 ...
在Java编程语言中,ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们都在java.util包中,用于存储和管理对象的集合。这三个类都实现了List接口,提供了多种操作方法,但它们在内部实现和性能特性上有所...
ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们各自有特定的特性和使用场景。这里我们将深入探讨这三个类的性能对比,以及它们在不同操作下的表现。 ArrayList是基于动态数组实现的,它提供了随机...
【ArrayList、LinkedList、Vector对比分析】 1. **List概述** List接口是Java集合框架中的重要组成部分,它是一个有序的集合,允许重复元素,并且保持插入顺序。List接口的实现类主要有ArrayList、LinkedList和...
LinkedList:如果是增删插多,用LinkedList Vector:如果是有线程安全要求用Vector 如果是不能存放重复的元素,用Set接口下的实现类 HashSet:如果没有任何排序要求,用HashSet,因为效率高 TreeSet: 如果有排序...
### ArrayList、Vector、LinkedList 的区别与用法详解 在Java编程中,选择合适的数据结构对于程序的性能至关重要。本文将深入探讨ArrayList、Vector和LinkedList三种集合类的特点与使用场景,帮助开发者更好地理解...
能学到什么:ArrayList的源码分析,自动扩容和自动缩容的源码分析,相关参数的深度解析,从是什么,为什么,怎么做三个角度进行讲解,用通俗易懂的白话进行介绍,LinkedList和Vector以及ArrayList的区别以及使用场景...
在Java编程语言中,`ArrayList`、`LinkedList`、`Vector`和`Map`是四种常用的集合类,它们各自有着不同的特性和用途。本篇文章将深入探讨这些数据结构及其使用场景。 首先,我们来了解`ArrayList`。`ArrayList`是`...
八、Vector、ArrayList和LinkedList Vector、ArrayList都是以数组的形式存储在内存中,所以查询效率高,新增和删除效率不高,Vector被Synchronized修饰,所以线程是安全的,ArrayList线程不安全。LinkedList则以...
Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是
ArrayList、Vector、LinkedList 的区别 在 Java 集合框架中,ArrayList、Vector、LinkedList 是三个常用的 List 实现类,虽然它们都实现了 List 接口,但是它们在继承关系、实现接口、底层数据结构、扩容机制等方面...
在Java编程语言中,ArrayList、Vector和LinkedList是三种常见的动态数组实现,它们都属于集合框架中的List接口。这里我们将深入探讨这三种数据结构的源码,理解它们的内部实现、性能特性和适用场景。 首先,...
在Java集合框架中,Vector、ArrayList和LinkedList是三种常见的List接口实现类,它们各自具有不同的特点和适用场景。下面我们将详细对比这三个类的区别。 1. **Vector** - **线程安全**:Vector是线程安全的,因为...
第四题 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)
今天,我们将深入了解 Java 中的集合类别,包括 ArrayList、Vector、LinkedList 和 Map 等。 ArrayList ArrayList 是一种基于数组的集合类别,它可以存储大量的数据。ArrayList 的特点是:它可以动态地增加或减少...
在Java集合框架中,Vector、ArrayList和LinkedList都是List接口的实现,它们提供了有序集合的功能,允许根据位置进行元素的添加、删除和查找。然而,它们在设计和性能上有着显著的区别。 首先,Vector是Java早期...
在Java中,虽然ArrayList和Vector类也可以用来实现堆栈,但LinkedList由于其特性,如高效地添加和删除元素,更适合作为堆栈的基础。 以下是使用LinkedList模拟堆栈的步骤: 1. 首先,我们需要创建一个LinkedList...
Java容器集合(equals和hashCode+基础数据结构+ArrayList+Vector和LinkedList) Java容器集合是Java中的一种基础数据结构,用于存储和管理数据。其中,equals和hashCode方法是Java容器集合中两个非常重要的方法,...