java 学习笔记 集合---Collection

在这里插入图片描述

Collection


	public static void method1() {
		Collection c=new ArrayList();
		c.add("aaa");
		c.add("bbb");
		System.out.println(c.size());
		System.out.println(c); // 打印collection的数据结构
		c.remove("aaa");
		System.out.println(c.size());
		System.out.println(c.toString()); 
		// 判断是否为empty(空)
		System.out.println(c.isEmpty());
		//remove 删除指定元素,
//		如果删除成功返回true,没有对应元素删除失败返回false
		System.out.println(c.remove("ccc"));
//  判断是否有某元素
       System.out.println(c.contains("aaa"));
		
	}

输出结果
2
[aaa, bbb]
1
[bbb]
false
false
true

public static void method2() {
		Collection c=new ArrayList();
		c.add("aaa");   //carr[0]="aaa"
		c.add("bbb");  // carr[1]="bbb"
		c.add("ccc");
		//是否包含aaa
		System.out.println(c.contains("aaa"));
		//没有元素ccc
		System.out.println(c.contains("ccc"));
		//集合的遍历 foreach 遍历集合
//		for(Object s: c) {
//			System.out.print(s.toString()+",");
			System.out.print(((String)s).toString()+","); //aaa,bbb,ccc,
			System.out.print(((String)s).concat(","));
//		}
//		集合特有的遍历方法  
//		迭代器----》不知道数据类型也可以遍历
//      1.获得迭代器c.iterator()
		Iterator  i=	c.iterator();
//		2.准备循环条件
		while(i.hasNext()) { //2.1是否有下一个元素
			System.out.print(i.next()+","); //2.2移动指针,指向下一个元素
		}
		
	}

	public static void method4() {
		Collection c=new ArrayList();
		c.add("aaa");   //carr[0]="aaa"
		c.add("bbb");  // carr[1]="bbb"
		c.add("ccc");
		c.add("ddd");
	
		Collection c1=new ArrayList();
		c1.add("aaa");   //carr[0]="aaa"
		c1.add("bbb");  
		//删除c中 的与c1集合相同的元素
		System.out.println(c.removeAll(c1));
		//子集
//		System.out.println(c.containsAll(c1));
//		 1.获得迭代器c.iterator()
		Iterator  i=	c.iterator();
//		2.准备循环条件
		while(i.hasNext()) { //2.1是否有下一个元素
			System.out.print(i.next()+","); //2.2移动指针,指向下一个元素
		}
	}

c.removeAll(c1) 删除c中 的与c1集合相同的元素
c.containsAll(c1) 判断是否为子集
c.retainAll(c1) 保留c中与c1中相同的元素
c.contains(“aaa”) c中是否包含aaa
以上 返回值为Boolean

List

List 接口 有序(添加元素的顺序与存放顺序一致),可重复

public static void method5() {
//		List 接口   有序(添加元素的顺序与存放顺序一致),可重复
		List list=new ArrayList();
		list.add("aaa");
		list.add("bbb");
		list.remove("aaa");
		Iterator i=list.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		
		
	}


public static void method6() {
		List list=new ArrayList();
		list.add("aaa"); //
		list.add("bbb"); //
		list.add(1, "ccc");//将元素加到指定数组下标位置
		
		Iterator i=list.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}

list.add(1, “ccc”) 将元素加到指定数组下标位置,后续元素依次后移
list.get(int index) 获取指定下标元素值
list.indexOf(“ccc”) List里是否有ccc,有就返回元素所在下标(如果有多个的话会返回第一个匹配的元素下标,如果想要返回最后一个匹配的下标,用 List.lastIndexOf() ),如果没有就返回-1

public static void method6() {
		List list=new ArrayList();
		list.add("aaa"); //
		list.add("bbb"); //
		list.add(1, "ccc");//将元素加到指定数组下标位置
		list.add("aaa");
		//获得指定下标元素
		System.out.println("list.get(1):"+list.get(1));
		//查找是否包含元素 ccc 如果包含返回下标,如果不包含返回-1
		System.out.println("list.indexOf(\"aaa\"):"+list.indexOf("aaa"));
		System.out.println("list.lastIndexOf(\"aaa\"):"+list.lastIndexOf("aaa"));
//		Iterator i=list.iterator();
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
	
		ListIterator i=	list.listIterator(); 
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		System.out.println("------------从后向前遍历");
		while(i.hasPrevious()) {
			System.out.println(i.previous());
		}
	}

ListIterator 比iterator功能要多
适用范围:
listIterator 只能用在List集合中的迭代器
iterator 在collection集合内都可以用
功能 :
listIterator 多了add功能 和反向遍历的功能

从后向前遍历(反向遍历)
i.hasPrevious() + i.previous()

从前向后遍历
i.hacNext()+ i.next()

Linkedlist

public static void method8() {
//		ArrayList 查找快,linkedlist 增删快,还添加了增删开头语结尾方法
		ArrayList arraylist=new ArrayList();
		arraylist.add("aaa");
		arraylist.add("bbb");
		arraylist.add("ccc");
		arraylist.add("ddd");
		arraylist.remove(0);
//		System.out.println("arraylist.get(0):"+arraylist.get(0));
		LinkedList linkedlist=new LinkedList();
		linkedlist.add("aaa");
		linkedlist.add("bbb");
		linkedlist.add("ccc");
		linkedlist.add("ddd");
//		linkedlist.addFirst(e); //增加到开头
//		linkedlist.addLast(e);  //增加到结尾
//		linkedlist.remove(0);
//		linkedlist.removeFirst();//删除第一个元素
//		linkedlist.removeLast(); //删除最后一个元素
//		System.out.println("linkedlist.get(0):"+linkedlist.get(0));
//		linkedlist.remove(); //删除第一个元素
//		-------------------------------------------
		

		Iterator  iterator=	linkedlist.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		
	}

ArrayList 查找快,linkedlist 增删快,还添加了增删开头语结尾方法
linkedlist.addFirst(e); 增加到开头
linkedlist.addLast(e); 增加到结尾
linkedlist.removeFirst(); 删除第一个元素
linkedlist.removeLast(); 删除最后一个元素
linkedlist.peek() 查看栈顶

Linkedlist 模拟push压栈 与 pop弹栈 栈内存

	
	public static void method9() {
		LinkedList linkedlist=new LinkedList();
//		内存中  输出顺序为    栈顶  《===》|c 《==》 b 《==} a |栈底
		linkedlist.push("a");
		linkedlist.push("b");
		linkedlist.push("c");
		// 使用pop弹栈
		System.out.println("linkedlist.pop():"+linkedlist.pop());
		System.out.println("linkedlist.pop():"+linkedlist.pop());
		System.out.println("linkedlist.pop():"+linkedlist.pop());
		
		Iterator  iterator=	linkedlist.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		
		
	}

内存中 输出顺序为 栈顶 |c b a |栈底
输出结果为:
c
b
a

set集合

public static void method10() {
//		Set集合 无序(内存存储结构与加入顺序不同),不可重复
		Set set=new TreeSet();
		set.add("aaa");
		set.add("fff");
		set.add("eee");
		set.add("bbb");
		set.add("ccc");
		set.add("ddd"); //0x123
		set.add("ddd"); //0x123
		set.add("ddd"); //0x123
		set.remove("ddd");
		
		Iterator i=set.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		
	}

hashset

	public static void method12() {
//		HashSet 效率高 ,速度快
		HashSet<String> hs=new HashSet();
		hs.add("aaa");
		hs.add("bbb");
		hs.add("ccc");
		hs.add("ddd");
		hs.add("eee");
		hs.add("fff");
		hs.remove("bbb");
		System.out.println(hs.contains("bbb"));
		
		
		Iterator i=hs.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}
	

treeset

	
	public static void method11() {
		
		TreeSet<String> ts=new TreeSet();
		//自然顺序     <------> 红黑树 
//		  统一数据类型----》钻石修饰符----》泛型 <Integer> 
//		ts.add(3);
//		ts.add(2);
//		ts.add(1);
		ts.add("aaa");
//		ts.add("aab");
//		ts.add("eee");
		ts.add("bbb");
		ts.add("ccc");
		ts.add("ddd"); //0x123
		ts.add("eee");
//		ts.add("ddd"); //0x123
//		ts.add("ddd"); //0x123
		ts.remove("ddd");
		
		Iterator i=ts.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		
	}

如果不通过泛型给出初始类型(统一数据类型),则会将添加进的第一个元素的类型默认为集合内所有元素的类型,添加别的类型的数据时会报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值