集合框架——入门2

目录

一、Set

二、 LinkedHashSet

总结


一、Set

  1.1 特点:无序、对象不能重复
  1.2 遍历
    1.2.1 foreach
    1.2.2 迭代器   
  1.3 常用实现类
      HashSet
      TreeSet:根据某种(规则)对里面的元素进行排序
        自然比较接口: java.lang.Comparable 
        比较器: java.util.Comparator
        String以AscII码进行比较,返回差值

案例:

//Set集合
		//1.特点:无序、唯一
		//1.1无序:元素添加的顺序与输出的顺序不一致
		//1.2唯一:不能添加重复元素
//		Set<String> set=new HashSet<>();
//		set.add("王一博");
//		set.add("王一宝");
//		set.add("王耶啵");
//		set.add("肖战");
//		set.add("有钱哥哥");
//		set.add("搏君一肖");
//		
		Set<Mingxin> set=new HashSet<>();
		set.add(new Mingxin(1, "王一博", 1f));
		set.add(new Mingxin(2, "王一宝", 2f));
		set.add(new Mingxin(3, "肖战", 3f));
		set.add(new Mingxin(3, "肖战", 4f));
		
		//equals方法默认比较的是Object类型,而Object是引用类型,比较的是内存地址
		//重写equals方法,先比较hashcode值,再比较equals
		//hashcode相同,则比较equals
		//hashcode值不相同,则不比较equals
		
		Mingxin mx=new Mingxin();
		mx.equals(null);
		
		set.forEach(System.out::println);
		//遍历方式(2种)
		for (Mingxin mingxin : set) {
			System.out.println(mingxin);
		}
		System.out.println("---------------");
		//iterator
		//获取迭代器
		Iterator<Mingxin> it=set.iterator();
		//循环遍历
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		
	}

二、 LinkedHashSet

  1)元素是有顺序的
  2)元素是不重复的
  3)底层数据结构是按照链表的结构存储的 Linked

  hashCode

  队列 Queue:表示一个先入先出的数据结构(自行研究)

  堆栈 Stack:表示一个先进后出的数据结构
  压:push
  弹:pop

案例:

//使用LinkedList实现堆栈
	private LinkedList lst=new LinkedList();
	
	
	/**
	 * 压栈
	 * @param o
	 */
	public void push(Object o) {
		lst.addFirst(o);
	}
	public Object pop() {
		//获取位于顶口的元素
		Object first =lst.getFirst();
		//删除位于栈顶的元素
		lst.removeFirst();
		
		return first;
	}
	
	public int size() {
		return lst.size();
	}
	
	public static void main(String[] args) {
		//初始化
		MyStack stack=new MyStack();
		//压栈
		stack.push("王一博");
		stack.push("肖战");
		stack.push("陈立农");
		stack.push("王耶啵");
		stack.push("有钱哥哥");
		stack.push("博君一肖");
		//循环
		while (stack.size()!=0) {
			System.out.println(stack.pop());
		}
	}


总结

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值