集合框架:
collection 框架在软件包 java.util中,接口Collection<E>是Collection 层次结构中的根接口。接口 Collection<E>的已知子接口有List,Set等,已知实现类有ArrayList,LinkedList,Stack,Vector等。
一、以下为常见的:
1)、接口 List <E> 有序的Collection。
常用的List实现类有:ArrayList,LinkedList,Stack,Vector
ArrayList:数组序列:有序的,可重复的,长度可变的,有下标的,地址连续的
LinkedList:链表,链式序列,有序的,可重复的,长度可变的,有下标的,地址任意的,地址是任意的,各个数据之间通过引用关联
Vector :向量,可以实现可增长的对象数组
Stack :栈,后进先出的对象堆栈, 最先放入的数据在栈的底部,最后放的数据在栈的顶部,每次取数据都只能取到栈顶的数据,是Vector的子类
2)、集合 Set 无重复的Collection。
常用的Set实现类有: HashSet,TreeSet
HashSet:无序的,不可重复的,长度可变的
TreeSet:不重复的,根据内容的自然顺序进行排序
3)、映射 Map<k,v>
常用的Set实现类有:HashMap,TreeMap
HashMap:k是一个HashSet
TreeMap:k是一个TreeSet
所有的K不能重复,每个K都对应一个Value,如果在加入数据的时候,出现相同的Key,则替换掉原有的Value
二、一些区别以及分别的使用场景:
1)、 ArrayList与LinkedList
ArrayList:在ArrayList中插入数据或删除数据时,需要将其后的所有数据相应的后移或者是前移,这样需要花费较多时间,效率比较低;而且此实现不是线程同步的。然而它的地址是连续的,一旦数据存储好了,查找效率比较高。
LinkedList:因为它的地址是任意的,若要随机的访问某个数据,则必须从链表的一端一个一个元素的去查找,所以适合进行插入和删除操作,但是查询效率比较低。
所以当要随机访问元素时,使用ArrayList,当要添加或删除数据时,使用LinkedList。
2)、ArrayList与Vector
Vector和ArrayList一样,都是大小可变数组的实现
但当Vector或ArrayList中的元素超过它的初始大小时,Vector的容量会翻倍,而ArrayList只增加50%的大小
ArrayList不支持线程同步,而 Vector是同步的
所以在多线程中,一般采用Vector
3)、HashSet与TreesSet
HashSet:它不保证 set 的迭代顺序,特别是它不保证该顺序恒久不变,其中元素是不可重复的,不支持线程同步。
TreeSet:使用元素的自然顺序对元素进行排序,元素是不可重复的,不支持线程同步。
代码示例:
import java.util.*;
public class Set {
public static void main(String[] args) {
HashSet<String> hs=new HashSet<String>();
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("C");
for (String h : hs) {
System.out.print(h+" ");
}
System.out.println(" ");
TreeSet<String> ts = new TreeSet<String>();
ts.add("B");
ts.add("A");
ts.add("D");
ts.add("C");
for (String t : ts) {
System.out.print(t+" ");
}
}
}
结果如下:
D A B C
A B C D
4)、HashMap与TreeMap
Hash:此类不保证映射的顺序,特别是它不保证该顺序恒久不变。不支持线程同步 。
TreeMap:该映射根据其键的自然顺序进行排序,不支持线程同步。
代码如下:
import java.util.*;
public class HashMapDemo {
public static void main(String[] args) {
//创建一个HashMap对象
HashMap<String,Integer> map = new HashMap<String,Integer>();
//存放数据
map.put("b", 90);
map.put("a", 100);
map.put("d", 50);
map.put("c", 10);
//如果存放相同的K,则替换掉这个K对应的Value
//map.put("韩国", 10);
//取出数据
//1.取得所有的k
Set<String> set = map.keySet();
//2.迭代Set
Iterator<String> iter = set.iterator();
System.out.println("HashMap:");
while(iter.hasNext()){
//取得一个K
String key = iter.next();
//根据K获得Value
int value = map.get(key);
System.out.print(key+" "+value+" ");
}
TreeMap<String,Integer> tm=new TreeMap<String,Integer>();
tm.put("b", 90);
tm.put("a", 100);
tm.put("d", 50);
tm.put("c", 10);
Set<String> set1 = tm.keySet();
//2.迭代Set
Iterator<String> iter1 = set1.iterator();
System.out.println("\nTreeMap:");
while(iter1.hasNext()){
//取得一个K
String key1 = iter1.next();
//根据K获得Value
int value1 = tm.get(key1);
System.out.print(key1+" "+value1+" ");
}
}
}
结果如下:
HashMap:
d 50 b 90 c 10 a 100
TreeMap:
a 100 b 90 c 10 d 50
分享到:
相关推荐
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
Java集合框架是Java编程语言中的一个核心组成部分,它为存储、管理和操作对象提供了一套统一的接口和类。本文将深入解析Java集合框架的各个方面,包括Collection、List、Set和Map,以及它们的相关实现和使用原理。 ...
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
### Java集合框架详解 #### 一、Java集合框架概述 Java集合框架是Java标准库的重要组成部分,它提供了存储和操作对象的各种数据结构。通过使用集合框架,开发人员可以轻松地管理不同类型的数据集,并且能够利用...
Java集合框架是Java编程语言中一个至关重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理各种类型的数据。本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java...
集合是将多个元素组成一个单元的...Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中
Java集合框架是Java编程语言中的核心部分,它提供了一组高效、灵活的数据结构,使得开发者可以方便地存储和管理各种类型的数据。Java集合框架主要包括两大类:Collection和Map。 Collection接口是所有单值容器的父...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6....
JAVA学习 Java集合框架.ppt
面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣...
Java集合框架,set、list接口及其子集,接口的继承关系
根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...
《数据结构和Java集合框架》是清华大学出版社出版的一本经典教材,主要涵盖了计算机科学中的核心概念——数据结构以及Java编程语言中的集合框架。这本书通过深入浅出的方式,讲解了如何用Java实现各种常用的数据结构...
一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用