Java语言-概念-集合类

ArrayList类

程序利用ArrayList实现元素的添加和删除,并将ArrayList集合转变为数组输出。

import java.util.ArrayList;
public class ListDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList list=new ArrayList();
		for(int i=0;i<10;i++)//给数组增加10个int元素
			list.add(i);
		list.remove(5);//将第6个元素移除
		for(int i=0;i<3;i++)//再增加3个元素
			list.add(i);
		Integer[] al=(Integer[])list.toArray(new Integer[list.size()]);
		for(int i=0;i<al.length;i++)
			System.out.print(al[i]+" ");
	}
}
0 1 2 3 4 6 7 8 9 0 1 2 

LinkedList类

LinkedList类的基本用法。

import java.util.LinkedList;
import java.util.List;
public class LinkedListDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LinkedList list=new LinkedList();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("4");
		list.add("5");
		System.out.println("LinkedList:"+list);
		System.out.println("getFirst()"+list.getFirst());
		System.out.println("getLast()"+list.getLast());
		list.addFirst("firstElement");
		list.addLast("lastElement");//等同add()
		System.out.println("addFirst() and addLast():"+list.toString());
		list.add(2, "addElement");
		System.out.println("add(2,addElement):"+list);
		list.remove(2);
		System.out.println("remove(2):"+list);
		list.removeFirst();//删除列表的首位元素
		list.removeLast();
		System.out.println("removeFirst() and removeLast():"+list);
		System.out.println("indexOf(2):"+list.indexOf(2));
	}
}
LinkedList:[1, 2, 3, 4, 5]
getFirst()1
getLast()5
addFirst() and addLast():[firstElement, 1, 2, 3, 4, 5, lastElement]
add(2,addElement):[firstElement, 1, addElement, 2, 3, 4, 5, lastElement]
remove(2):[firstElement, 1, 2, 3, 4, 5, lastElement]
removeFirst() and removeLast():[1, 2, 3, 4, 5]
indexOf(2):-1

HashSet类

声明一个Collections API的Set对象,并且用其子类HashSet对其初始化。向Set中添加元素并打印结果。

import java.util.*;
public class SetTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Set set=new HashSet();
		set.add("abc");
		set.add("abd");
		set.add("abe");
		set.add(new Integer(4));
		set.add("abe");//插入了相同的数据,所以会失败
		set.add(new Integer(4));//同上
		System.out.println(set);
	}
}
[abd, abc, 4, abe]

重写hashCode()方法和equals()方法,验证HashSet集合元素的添加。

import java.util.*;
public class SetTest1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashSet hs=new HashSet();
		for(int i=0;i<10;i++)//保存了10个元素
			hs.add(new Data());
		System.out.println(hs);
	}
}
class Data{
	//覆盖hashCode()方法,得到一样的hashcode
	public int hashCode() {
		return 12;
	}
	//覆盖equals()方法,是每个对象比较相等
	public boolean equals(Object o) {
		return true;
	}
}
[Data@c]

若只写hashCode()方法,则所有元素的哈希地址是相同的,存放位置相同,并依次可以访问到下一个相邻元素,输出结果为:

[Data@c,Data@c,Data@c,Data@c,Data@c,Data@c,Data@c,Data@c,Data@c,Data@c]

若没有重写hashCode()方法和equals()方法,则每个元素均会存储到集合中,输出结果为:

[Data@1bc4459,Data@12b6651,Data@4f1d0d,Data@18a992f,Data@150bd4d,Data@dc8569,Data@c3c749,Data@1bab50a,Data@1fc4bec,Data@4a5ab2]

HashMap类

HashMap类的基本用法。

import java.util.HashMap;
import java.util.Map;
public class HashMapDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String,String> cities=new HashMap<String,String>();
		cities.put("BJ", "北京");
		cities.put("SH", "上海");
		cities.put("GZ", "广州");
		cities.put("SZ", "深圳");
		String city=(String) cities.get("BJ");
		System.out.println("BJ对应的城市是:"+city);
		System.out.println("Map中共有"+cities.size()+"组数据");
		cities.remove("GZ");
		System.out.println("Map中包含GZ的key吗?"+cities.containsKey("GZ"));
		System.out.println(cities.keySet());
		System.out.println(cities.values());
		System.out.println(cities);
	}
}
BJ对应的城市是:北京
Map中共有4组数据
Map中包含GZ的key吗?false
[SH, SZ, BJ]
[上海, 深圳, 北京]
{SH=上海, SZ=深圳, BJ=北京}

遍历HashMap的键值对。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class iteratorHashMapByEntryset {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String,String> cities=new HashMap<String,String>();
		cities.put("BJ", "北京");
		cities.put("SH", "上海");
		cities.put("GZ", "广州");
		Iterator iter=cities.entrySet().iterator();
		while(iter.hasNext()) {
			Map.Entry entry=(Map.Entry)iter.next();
			String key=(String)entry.getKey();
			String value=(String)entry.getValue();
			System.out.println(key+"--"+value);
		}
	}
}
GZ--广州
SH--上海
BJ--北京

遍历HashMap的键。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class iteratorHashMapByKeyset {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String,String> cities=new HashMap<String,String>();
		cities.put("BJ", "北京");
		cities.put("SH", "上海");
		cities.put("GZ", "广州");
		Iterator iter=cities.keySet().iterator();
		while(iter.hasNext()) {
			String key=(String)iter.next();
			String value=(String)cities.get(key);
			System.out.println(key+"--"+value);
		}
	}
}
GZ--广州
SH--上海
BJ--北京

遍历HashMap的值。

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class iteratororHashMapJustValues {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String,String> cities=new HashMap<String,String>();
		cities.put("BJ", "北京");
		cities.put("SH", "上海");
		cities.put("GZ", "广州");
		Collection c=cities.values();
		Iterator iter=c.iterator();
		while(iter.hasNext()) {
			System.out.println(iter.next());
		}
	}
}
广州
上海
北京

你可能感兴趣的:(Java语言)