TreeMap

TreeMap

  • 底层是红黑树
  • 添加速度删除速度 高于ArrayList,比其他的都低;
  • 查询速度 高于List ,低于Hash
  • 如果对于存储的数据有排序的要求,首选TreeMap

迭代元素

  • 获取键 迭代键的过程中通过get方法获取值
public static void main(String[] args) {
		
		Map<String,String> mps = new HashMap<>();
			//put  如果存在键 返回对应的值  添加的值会覆盖之前的值
			mps.put("圣枪游侠", "奥巴马");
			mps.put("皮城女警", "女警");
			mps.put("德玛西亚", "大宝剑");
			System.out.println(mps);
			
			//迭代元素
			System.out.println("迭代所有的key:");
			Set<String> keys = mps.keySet();
			for(String key:keys) {
				System.out.println(key+"="+mps.get(key));
			}
  • 获取Entry对象,通过getKey和getValue获取键和值
public static void main(String[] args) {
		
		Map<String,String> mps = new HashMap<>();
			//put  如果存在键 返回对应的值  添加的值会覆盖之前的值
			mps.put("圣枪游侠", "奥巴马");
			mps.put("皮城女警", "女警");
			mps.put("德玛西亚", "大宝剑");
			System.out.println(mps);
			
			//获取entry对象
			Set<Entry<String,String>> kvs = mps.entrySet();//返回一个Set集合
			//实际是HashSet中的Node对象 因为Node实现了Map中的entry接口
			for(Entry<String,String> entry:kvs) {
				System.out.println(entry.getKey()+"="+entry.getValue());
			}

存储自定义对象

  • 1:要么自定义对象的所属类 实现了内部比较器Comparable接口 重写compareTo方法
	@Override
	public int compareTo(Hero o) {
		return 1;
	}
	
  • 2:要么创建TreeMap对象是 指定外部比较器Comparetor接口 重写compare方法
public class Test05 {
	
	public static void main(String[] args) {
		MyCom m = new MyCom();
		//  传入一个比较器
		//TreeSet<String> treeSet = new TreeSet<>(new MyCom());
		
		
		
		TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				return o1.length()-o2.length();
			}
		});
		
		
		//TreeSet<String> treeSet = new TreeSet<>((o1,o2)-> -1);
		
		
		//添加元素
		treeSet.add("oracle");
		treeSet.add("ajax");
		treeSet.add("bootstrap");
		treeSet.add("ejb");
		treeSet.add("java");
		 
		System.out.println(treeSet);
		
		
		
		
	}
	
	
}

class MyCom implements Comparator<String>{

	@Override
	public int compare(String o1, String o2) {
		return o1.length()-o2.length();
	}
	
}



Collections

  • 主要是针对集合做一些操作
public static void main(String[] args) {
		
		List<String> ls = new ArrayList<>();
		Collections.addAll(ls, "xiao","wo","shi");//添加元素到集合
		System.out.println(ls);
		Collections.sort(ls);//排序
		System.out.println(ls);
		System.out.println(Collections.binarySearch(ls, "shi"));//二分查找
		
		

Arrays

  • 针对数组做一些操作
public static void main(String[] args) {
		
		
		String[] strs = new String[] {"5","2","3","4"};
		List<String> ls = Arrays.asList(strs);
		System.out.println(ls);
		/*Arrays.asList 返回的是Arrays类中的内部类ArrayList 
		 而这个类的对象是不允许添加以及删除元素的,
		 也就是返回的集合对象是一个长度不可变的ArrayList。*/
		Arrays.sort(strs);//排序
		System.out.println(Arrays.toString(strs));
		
//		Arrays.fill(strs, "小猫");
//		System.out.println(Arrays.toString(strs));
		
		Object[] objs = ls.toArray();//集合转数组
		System.out.println(Arrays.toString(objs));
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值