java集合 - Collection - List - Set - Map - Iterator 学习笔记

1、Collection接口

集合可以理解为一个动态的对象数组,两层含义:

1)、动态:集合中的对象可以任意扩充和删减;

2)、集合中可以存放任意对象。

集合的性能比数组高,而且更容易进行数据的扩展和修改。

Collection的常用子接口:List、Set、Queue。

2、List接口

List集合可以存放任意对象,而且集合中对象可以重复。

List的常用实现类:ArrayList、Vector。

ArrayList与Vector的比较:

性能方面:ArrayList采用异步处理方式,性能高;Vector采用同步处理方式,性能低些;

线性安全方面:ArrayList属于非线程安全;Vector属于线程安全。

【ArrayList实例】

<span style="font-size:14px;">import java.util.ArrayList;
import java.util.List;

public class ListDemo1 {

	public static void main(String[] args) {
		List<String> lists = null;
		lists = new ArrayList<String>();
		lists.add("Hello");
		lists.add("World");
		lists.add("Hello"); //允许List中对象重复
		for(int i=0; i< lists.size(); i++){
			System.out.println(lists.get(i));
		}
		System.out.println("删除操作后....");
		lists.remove(2);
		for (int i = 0; i < lists.size(); i++) {
			System.out.println(lists.get(i));
		}
		if (lists.isEmpty()) {
			System.out.println("集合为空...");
		} else {
			System.out.println("集合不为空...");
		}
		if (lists.contains("World")) {
			System.out.println("集合中包含World");
			System.out.println("World所在的位置为:" + lists.indexOf("World"));
		} else {
			System.out.println("集合中不包含World");
		}

		List<String> lists2 = new ArrayList<String>();
		lists2.add("World");
		lists2.add("Hello");
		if (lists.equals(lists2)) {  //List的比较与元素存入的顺序有关
			System.out.println("lists 与 lists2 相等");
		} else {
			System.out.println("lists 与 lists2 不相等");
		}
	}

}</span>

【Vector实例】

<span style="font-size:14px;">import java.util.List;
import java.util.Vector;

public class VectorDemo1 {

	public static void main(String[] args) {

		List<String> lists = null;
		lists = new Vector<String>();
		lists.add("Hello");
		lists.add("World");
		for (int i = 0; i < lists.size(); i++) {
			System.out.println(lists.get(i));
		}
	}

}</span>

3、Set接口

Set集合中不可以放入重复的元素。

Set集合会自动排序;

Set常用的实现类:HashSet,TreeSet。

【HashSet实例】

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetDemo1 {

	public static void main(String[] args) {

		Set<String> sets = null;
		sets = new HashSet<String>();
		sets.add("D");
		sets.add("A");
		sets.add("C");
		sets.add("B");
		sets.add("E");

		Iterator<String> its = sets.iterator();
		while (its.hasNext()) { /*迭代输出*/
			System.out.println(its.next());
		}

		Set<String> sets2 = null;
		sets2 = new HashSet<String>();
		sets2.add("E");
		sets2.add("D");
		sets2.add("A");
		sets2.add("C");
		sets2.add("B");

		if (sets.equals(sets2)) { // Set的比较与存入元素顺序无关
			System.out.println("sets 与 sets2 相等!");
		}else {
			System.out.println("sets 与 sets2 不相等!");
		}

	}

}

4、Iterator接口

Iterator是集合输出的标准操作。

Iterator是集合专门的迭代输出接口,迭代输出就是将元素一个一个进行判断,判断其是否有内容,如果有内容则把内容取出。

具体实例,见上面的例子。

5、Map接口

Map以key/value的保存形式。

Map常用的实现类:HashMap,Hashtable。

不允许key重复。

【HashMap实例】

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapDemo1 {

	public static void main(String[] args) {

		Map<String, String> map = new HashMap<String,String>();
		map.put("key1", "hello");
		map.put("key2", "world");
		map.put("key3", "hi");

		String s = map.get("key2"); //通过key,获取value;
		System.out.println(s);

		Set<String> sets = map.keySet(); //获取所有的key;
		Iterator<String> itesKey = sets.iterator();
		while(itesKey.hasNext()){
			System.out.println(itesKey.next());
		}

		Collection<String> cols = map.values(); //获取所有的value;
		Iterator<String> itesVal = cols.iterator();
		while(itesVal.hasNext()){
			System.out.println(itesVal.next());
		}

		if (map.containsKey("key1")) {
			System.out.println("key存在");
		}

		if (map.containsValue("world")) {
			System.out.println("value存在");
		}

		map.remove("key1"); //移除指定key

	}

}
时间: 2024-12-14 18:44:22

java集合 - Collection - List - Set - Map - Iterator 学习笔记的相关文章

java 容器Collection List Set Map概述

对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. JAVA集合主要分为三种类型: Set(集) List(列表) Map(映射) Collection 接口 Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法. Set 和

Java集合详解3:Iterator,fail-fast机制与比较器

Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/9/collection3 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a72

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu

Java 集合系列14之 Map总结

(01) 新建WeakHashMap,将"键值对"添加到WeakHashMap中. 将"键值对"添加到WeakHashMap中时,添加的键都是弱键. 实际上,WeakHashMap是通过数组table保存Entry(键值对):每一个Entry实际上是一个单向链表,即Entry是键值对链表. (02) 当某"弱键"不再被其它对象引用,并被GC回收时.在GC回收该"弱键"时,这个"弱键"也同时会被添加到queu

java.util (Collection接口和Map接口)

1:Collection和Map接口的几个主要继承和实现类                  1.1  Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口"如List和Set. 如

JAVA中Collection接口和Map接口的主要实现类

Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collectio

【转】Java 集合系列09之 Map架构

概要 前面,我们已经系统的对List进行了学习.接下来,我们先学习Map,然后再学习Set:因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 首先,我们看看Map架构. 如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value).(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.

Java 集合系列09之 Map架构

概要 前面,我们已经系统的对List进行了学习.接下来,我们先学习Map,然后再学习Set:因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 首先,我们看看Map架构. 如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value).(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.

【转】Java集合框架List,Map,Set等全面介绍

原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +--java.util.LinkedList [C]   +--java.u