关闭

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

标签: javaarraylistcollectionmaplist
658人阅读 评论(0) 收藏 举报
分类:

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
		
	}

}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:171257次
    • 积分:2973
    • 等级:
    • 排名:第13365名
    • 原创:123篇
    • 转载:15篇
    • 译文:11篇
    • 评论:25条
    最新评论