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
		
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值