集合类的使用? collection set map list

Collection  是set list queue的父接口


Set 无顺序,不能含重复元素

HashSet按Hash算法存储集合元素,具有良好的存取和查找性能 (不按顺序存取,不同步,需要代码保证同步,元素可以是null)

TreeSet按照红黑树数据结构对元素进行排序,有自然排序和定制排序

EnumSet 为枚举类设计的集合类,干啥的我也不知道

import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
class CollectionTest 
{
	public static void main(String[] args) 
	{
		/*HashSet*/
		Set<String> books = new HashSet<String>();
		books.add("新华字典");
		books.add("葵花宝典");
		books.add("参考书");
		/*foreach*/
		for(String book : books){  
			//books.remove(book);  //foreach不能修改集合,修改则报错
			System.out.println(book);  //输出 新华字典 参考书 葵花宝典 不按存入顺序摆放
		}
		/*迭代*/
		Iterator it = books.iterator();
		while(it.hasNext()){
			String book = (String)it.next();   //在一次迭代中不可使用两次it.next(),it.next()返回类型是Object
			System.out.println(book);
			//books.remove(book);   //Iterator迭代过程也不能修改集合
			System.out.println(book.hashCode()); //hashCode元素的“索引”,根据hashCode查找该元素
		}
		/*TreeSet*/
		Set<String> books2 = new TreeSet<String>();
		books2.add("新华字典");
		books2.add("葵花宝典");
		books2.add("参考书");
		for(String book : books2){  
			//books.remove(book);  //foreach不能修改集合,修改则报错
			System.out.println(book);  //输出 参考书 新华字典 葵花宝典
		}
	}
}


List

ArrayList  线程不安全

Vector  线程安全,所以性能比ArrayList低

LinkedList 基于链表实现的List类,对于顺序访问集合中的元素进行了优化,特别是插入、删除元素时比较快

import java.util.*;
class CollectionTest 
{
	public static void main(String[] args) 
	{
		/*ArrayList*/
		List<String> list = new ArrayList<String>();
		list.add("葵花宝典");
		list.add("新华字典");
		list.add("参考书");
		/*循环访问*/
		for(int i=0; i<list.size(); i++){
			System.out.println(list.get(i));
		}
		/*foreach*/
		for(Object book : list){
			System.out.println(book);
		}

	}
}

Map 键和值

HashMap  线程不安全,可以使用null作为键和值

Hashtable  线程安全,性能低一些,不能使用null作为键和值

TreeMap 基于红黑树排序

EnumMap  枚举类一起使用的map实现


import java.util.*;
class CollectionTest 
{
	public static void main(String[] args) 
	{
		Map map = new HashMap();
		map.put("a",123);
		map.put("b","abc");
		System.out.println(map.get("a"));
		System.out.println(map.get("b"));

	}
}

集合工具类Collections



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值