Java-集合-Collection(List&Set)-Map(HashMap&HashTable&Properties)

集合

描述

1.存储数据,相当于数组

2.集合的长度不需要程序员去维护,扩容。集合是数组的一个实现

在这里插入图片描述

·Collection

一、List (list 实现的集合允许所有元素进来)

1-ArrayList类型参数E - 此 set 所维护的元素的类型
ArrayList list = new ArrayList();//默认构造器,构造一个初始容量为 10 的空列表。
add() 添加元素可以是任意种类的元素,元素从零开始进行
set() 改变索引位置上的块元素
get() 获取下标索引值
remove() 移除元素 传参是下标时,可以移除任何东西,传参是变量值或者对象时,会依据内容进行查找匹配,将找到的第一个移除,不可以一移除匿名对象
clear() 无差别清空集合
2-LinkedList java.util.LinkedList;
LinkList(); 构造一个空列表 
add() 添加元素可以是任意种类的元素,元素从零开始进行
set() 改变索引位置上的块元素
get() 获取下标索引值
remove() 移除元素 传参是下标时,可以移除任何东西,传参是变量值或者对象时,会依据内容进行查找匹配,将找到的第一个移除,不可以一移除匿名对象
clear() 无差别清空集合
----------------------------------------------------
头尾操作
    addFirst();//插入到开头
	addLast();//插入到结尾 
	getFirst();//得到首部
	getLast();//得到尾部
	removeF irst();//删除
	removeLast();//
	poll();//获取并移除第一个元素

二、set java.util.set; 不允许重复值,无序

1-HashSet
基本增删改和List基本一致,查询操作由于其内部的无序性,无法进行下标定位,需要使用迭代器,将数据
boolean add(E e) 
          如果此 set 中尚未包含指定元素,则添加指定元素。 
 void clear() 
          从此 set 中移除所有元素。 
 Object clone() 
          返回此 HashSet 实例的浅表副本:并没有复制这些元素本身。 
 boolean contains(Object o) 
          如果此 set 包含指定元素,则返回 trueboolean isEmpty() 
          如果此 set 不包含任何元素,则返回 trueIterator<E> iterator() 
          返回对此 set 中元素进行迭代的迭代器。 
 boolean remove(Object o) 
          如果指定元素存在于此 set 中,则将其移除。 
 int size() 
          返回此 set 中的元素的数量(set 的容量)。 

迭代器的使用 public Iterator iterator()
 public Iterator<E> iterator()
     迭代器中提供的方法
    	forEachRemaining(Consumer<? super E> 	action):为每个剩余元素执行给定的操作,直到所有的元素都已经被处理或行动将抛出一个异常

		hasNext():如果迭代器中还有元素,则返回truenext():返回迭代器中的下一个元素

		remove():删除迭代器新返回的元素。
2-TreeSet

使用元素的自然顺序对元素进行排序,不重复,只能放同一种元素。

如果向TreeSet存对象,那么需要调用compareTo方法去判断是否相同,如果返回值为0,那么认为相等。如果返回值是1,那么说明他的值的unicode编码大,大的就放在后边。如果该返回值是负数,那么就把内容放到前面存储。存入的对象要实现Comparable接口,重写compareTo方法。

import java.util.TreeSet;
构造方法摘要
TreeSet() 
          构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。 
TreeSet(Collection<? extends E> c) 
          构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。 
TreeSet(Comparator<? super E> comparator) 
          构造一个新的空 TreeSet,它根据指定比较器进行排序。 
TreeSet(SortedSet<E> s) 
          构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet
方法摘要
boolean add(E e) 
          将指定的元素添加到此 set(如果该元素尚未存在于 set 中)。会自动调用CompareTo方法 
 E ceiling(E e) 
          返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 nullE floor(E e) 
          返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 nullvoid clear() 
          移除此 set 中的所有元素。 
 boolean contains(Object o) 
          如果此 set 包含指定的元素,则返回 trueE first() 
          返回此 set 中当前第一个(最低)元素。 
 E higher(E e) 
          返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 nullboolean isEmpty() 
          如果此 set 不包含任何元素,则返回 trueIterator<E> iterator() 
          返回在此 set 中的元素上按升序进行迭代的迭代器。 
 E last() 
          返回此 set 中当前最后一个(最高)元素。 
 E lower(E e) 
          返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 nullE pollFirst() 
          获取并移除第一个(最低)元素;如果此 set 为空,则返回 nullE pollLast() 
          获取并移除最后一个(最高)元素;如果此 set 为空,则返回 nullboolean remove(Object o) 
          将指定的元素从 set 中移除(如果该元素存在于此 set 中)。 
 int size() 
          返回 set 中的元素数(set 的容量)。  

·Map <K,V>

类型参数
K - 此映射所维护的键的类型
V - 映射值的类型
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
1.HashMap<K,V>
简介
基于哈希表的 `Map` 接口的实现。此实现提供所有可选的映射操作,并允许使用 `null` 值和 `null`  键。(除了非同步和允许使用 null 之外,`HashMap` 类与 `Hashtable`  大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 
构造方法摘要
HashMap() 
          构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMapHashMap(int initialCapacity) 
          构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMapHashMap(int initialCapacity, float loadFactor) 
          构造一个带指定初始容量和加载因子的空 HashMapHashMap(Map<? extends K,? extends V> m) 
          构造一个映射关系与指定 Map 相同的新 HashMap
方法摘要
 void clear() 
          从此映射中移除所有映射关系。 
 Object clone() 
          返回此 HashMap 实例的浅表副本:并不复制键和值本身。 
 boolean containsKey(Object key) 
          如果此映射包含对于指定键的映射关系,则返回 true。
     查找此键key是否存在;
 boolean containsValue(Object value) 
          如果此映射将一个或多个键映射到指定值,则返回 true。
     查找此值value是否存在
 Set<Map.Entry<K,V>> entrySet() 
          返回此映射所包含的映射关系的 Set 视图。 
     
 V get(Object key) 
          返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 nullboolean isEmpty() 
          如果此映射不包含键-值映射关系,则返回 trueSet<K> keySet() 
          返回此映射中所包含的键的 Set 视图。 
 V put(K key, V value) 
          在此映射中关联指定值与指定键。 添加键值对
 void putAll(Map<? extends K,? extends V> m) 
          将指定映射的所有映射关系复制到此映射中,这些映射关系将替换此映射目前针对指定映射中所有键的所有映射关系。 一次添加多组键值对;
 V remove(Object key) 
          从此映射中移除指定键的映射关系(如果存在)。 
 int size() 
          返回此映射中的键-值映射关系数。 
 Collection<V> values() 
          返回此映射所包含的值的 Collection 视图 

实例:
----------------返回此映射所包含的映射关系的一般视图。---------------------------
{daChun=Student{sno=042040511	, name=大春	, sex=}, xiaoLi=Student{sno=042040511	, name=大春	, sex=}}
----------------返回此映射所包含的映射关系的 Set 视图。---------------------------
[daChun=Student{sno=042040511	, name=大春	, sex=}, xiaoLi=Student{sno=042040511	, name=大春	, sex=}]
----------------返回此映射所包含的映射关系的key的 Set 视图。---------------------------
[daChun, xiaoLi]
----------------返回此映射所包含的值的 Collection 视图---------------------------
[Student{sno=042040511	, name=大春	, sex=}, Student{sno=042040511	, name=大春	, sex=}]

Process finished with exit code 0
2.HashTable<K,V>
简介
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 `null` 对象都可以用作键或值。

为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 `hashCode` 方法和 `equals`  方法。
构造方法摘要
Hashtable() 
          用默认的初始容量 (11) 和加载因子 (0.75) 构造一个新的空哈希表。 
Hashtable(int initialCapacity) 
          用指定初始容量和默认的加载因子 (0.75) 构造一个新的空哈希表。 
Hashtable(int initialCapacity, float loadFactor) 
          用指定初始容量和指定加载因子构造一个新的空哈希表。 
Hashtable(Map<? extends K,? extends V> t) 
          构造一个与给定的 Map 具有相同映射关系的新哈希表。 
方法摘要
 void clear() 
          将此哈希表清空,使其不包含任何键。 
 Object clone() 
          创建此哈希表的浅表副本。 
 boolean contains(Object value) 
          测试此映射表中是否存在与指定值关联的键。 
 boolean containsKey(Object key) 
          测试指定对象是否为此哈希表中的键。 
 boolean containsValue(Object value) 
          如果此 Hashtable 将一个或多个键映射到此值,则返回 trueSet<Map.Entry<K,V>> entrySet() 
          返回此映射中包含的键的 Set 视图。 
 boolean equals(Object o) 
          按照 Map 接口的定义,比较指定 Object 与此 Map 是否相等。 
 V get(Object key) 
          返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null. 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回 nullint hashCode() 
          按照 Map 接口的定义,返回此 Map 的哈希码值。 
 boolean isEmpty() 
          测试此哈希表是否没有键映射到值。 
 Enumeration<V> elements() 
          返回此哈希表中的值的枚举。 
 Enumeration<K> keys() 
          返回此哈希表中的键的枚举。 
 Set<K> keySet() 
          返回此映射中包含的键的 Set 视图。 
 V put(K key, V value) 
          将指定 key 映射到此哈希表中的指定 value。 
 void putAll(Map<? extends K,? extends V> t) 
          将指定映射的所有映射关系复制到此哈希表中,这些映射关系将替换此哈希表拥有的、针对当前指定映射中所有键的所有映射关系。 
protected  void rehash() 
          增加此哈希表的容量并在内部对其进行重组,以便更有效地容纳和访问其元素。 
 V remove(Object key) 
          从哈希表中移除该键及其相应的值。 
 int size() 
          返回此哈希表中的键的数量。 
 String toString() 
          返回此 Hashtable 对象的字符串表示形式,其形式为 ASCII 字符 ", " (逗号加空格)分隔开的、括在括号中的一组条目。 
 Collection<V> values() 
          返回此映射中包含的键的 Collection 视图。 
3.Properties

Properties

基本介绍

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

java.util.Properties;
构造方法摘要
Properties() 
          创建一个无默认值的空属性列表。 
Properties(Properties defaults) 
          创建一个带有指定默认值的空属性列表。
    
  字段摘要:
    protected  Properties defaults 
          一个属性列表,包含属性列表中所有未找到值的键的默认值。 

方法摘要
String getProperty(String key) 
          用指定的键在此属性列表中搜索属性。 
 String getProperty(String key, String defaultValue) 
          用指定的键在属性列表中搜索属性。 
 void list(PrintStream out) 
          将属性列表输出到指定的输出流。 
 void list(PrintWriter out) 
          将属性列表输出到指定的输出流。 
 void load(InputStream inStream) 
          从输入流中读取属性列表(键和元素对)。 
 void load(Reader reader) 
          按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 
 void loadFromXML(InputStream in) 
          将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。 
 Enumeration<?> propertyNames() 
          返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。 
 void save(OutputStream out, String comments) 
          已过时。 如果在保存属性列表时发生 I/O 错误,则此方法不抛出 IOException。保存属性列表的首选方法是通过 store(OutputStream out, String comments) 方法或 storeToXML(OutputStream os, String comment) 方法来进行。 
 Object setProperty(String key, String value) 
          调用 Hashtable 的方法 put。 
 void store(OutputStream out, String comments) 
          以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 
 void store(Writer writer, String comments) 
          以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。 
 void storeToXML(OutputStream os, String comment) 
          发出一个表示此表中包含的所有属性的 XML 文档。 
 void storeToXML(OutputStream os, String comment, String encoding) 
          使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。 
 Set<String> stringPropertyNames() 
          返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。 

案例:

1.我们需要把我们的数据写出到一个文件中

2.把磁盘上的文件中的信息读取到程序中 信息是有规范的 : =value;

把内存上的数据输入到硬盘的文件中(list()和PrinStream())
properties2.list(new PrinStream("D:/properties.txt"));

把硬盘文件上的数据输出到内存空间中(load()和FileInputStream())
properties1.load(new FileInputStream("d:/p1.txt"));

集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。




### 案例:

1.我们需要把我们的数据写出到一个文件中

2.把磁盘上的文件中的信息读取到程序中   信息是有规范的 : <name>=value;



###### 把内存上的数据输入到硬盘的文件中(list()和PrinStream())

```java
properties2.list(new PrinStream("D:/properties.txt"));

把硬盘文件上的数据输出到内存空间中(load()和FileInputStream())
properties1.load(new FileInputStream("d:/p1.txt"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值