JAVA 中各种集合类阐述和理解

List接口

ArrayList:本质是数组

LinkedList:本质是双向链表

vector:多线程同步是安全的,本质也是数组

            stack:继承于vactor,本质是栈


Set接口(实现了不同于List的元素排序)

HashSet:使用散列表进行存储,使用散列法。(散列法:每一个关键字都有对应唯一的一个哈希值,而这个哈希值类似于数组的下坐标,并设置为ture。输出则是按照下坐标顺序输出)

TreeSet:使用树结构进行储存,使用自然顺序的升序法。


Map接口(实现了不同于List和Set的元素映射)

HashMap:使用散列表进行存储,使用散列法对key值进行排序。(这里要说一下,输出无法直接迭代hashmap,必须将hashmap放进set集合再迭代输出)

TreeMap:使用树结构进行储存,使用自然顺序的升序法对key值进行排序。


这里举例一些常见操作:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;

public class LearnList {
	
	public void arrayList() {
		ArrayList<Integer> test=new ArrayList<Integer>();
		test.add(new Integer(102));
		test.add(new Integer(100));
		test.add(new Integer(101));
		test.add(new Integer(109));
		test.add(new Integer(101));
		test.add(new Integer(100));
		Iterator<Integer> iterator=test.iterator();
		while(iterator.hasNext()) {
			System.err.println("ArrayList:"+iterator.next());
		}
	}
	
	public void hashSet() {
		HashSet<Object> test=new HashSet<Object>();
		test.add(new Integer(102));
		test.add(new Integer(100));
		test.add(new Integer(101));
		test.add(new Integer(109));
		test.add(new Integer(101));
		test.add(new Integer(100));
		Iterator<Object> iterator=test.iterator();
		while(iterator.hasNext()) {
			System.err.println("HashMap:"+iterator.next());
		}
	}
	public void treeSet() {
		TreeSet<Object> test=new TreeSet<Object>();
		test.add(new Integer(102));
		test.add(new Integer(100));
		test.add(new Integer(101));
		test.add(new Integer(109));
		test.add(new Integer(101));
		test.add(new Integer(100));
		Iterator<Object> iterator=test.iterator();
		while(iterator.hasNext()) {
			System.err.println("TreeSet:"+iterator.next());
		}
		System.out.println("first:"+test.first());
	}
	public void hashMap() {
		HashMap<String,Integer> test=new HashMap<String,Integer>();
		test.put("1",new Integer(6));
		test.put("6",new Integer(1));
		test.put("5",new Integer(2));
		test.put("2",new Integer(5));
		test.put("4",new Integer(3));
		test.put("3",new Integer(4));
//		System.out.println(test);
		Set<Entry<String, Integer>> set=test.entrySet();
		Iterator<Entry<String, Integer>> iterator=set.iterator();
		while(iterator.hasNext()) {
			Entry<String, Integer> me=iterator.next();
			System.err.print("HashMap:"+me.getKey());
			System.err.println("="+me.getValue());
		}
		int old=test.get("5");
		test.put("5",old+100);
		System.out.println(test.get("5"));
	}
	public static void main(String[] args) {
		
		new LearnList().arrayList();
		new LearnList().hashSet();
		new LearnList().treeSet();
		new LearnList().hashMap();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值