Java__单列集合Collection中List接口与Set接口的简单应用

Java__单列集合Collection中List接口与Set接口的简单应用

    集合:集合是java中提供的一种容器,可以用来存储多个数据。
    集合和数组都是容器,其区别主要有:
        1、数组的长度是固定的。集合的长度是可变的。
        2、数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

    集合按照其存储结构可以分为两大类,分别是单列集合和双列集合,本章主要讲单列集合Collection。
    用Collection coll = new ArrayList();多态方式,直接创建一个等待添加新数据的空集合。相应操作看下列代码输出注释。

public static void collectionMethod() {
		Collection coll = new ArrayList();
		coll.add("good");
		coll.add("boy");
		coll.add(123);
		System.out.println("coll中的元素:"+coll);
		Collection coll2 = new ArrayList();
		coll2.add("good");
		coll2.add("NewBird");
		System.out.println("coll2中的元素:"+coll2);
		System.out.println("判断good是否在coll中:"+coll.contains("good"));
		coll.remove(123);
		System.out.println("移除元素123:"+coll);
		coll.removeAll(coll2);
		System.out.println("移除coll与coll2的交集元素"+coll);
		coll.clear();
		System.out.println("清空coll中的元素:"+coll);
		System.out.println("判断coll是否为空:"+coll.isEmpty());
	}

    单列集合有两个子接口分别为:List和Set;他们之间的区别:List的特点是元素有序、元素可重复,Set的特点是元素无序,而且不可重复。List主要实现的是ArrayList和LinkedList,Set主要实现的有HashSet和TreeSet。
List以ArrayList为例:

public static void arrayListMethod() {
		List list = new ArrayList();
		list.add("小狗");
		list.add("小猫");
		list.add("小熊");
		System.out.println("list中元素:"+list);
		/**
		 * add(要插入的下标,元素)
		 */
		list.add(2, "小豹子");
		System.out.println("插入“小豹子”到下标为2的地方:"+list);
		// 迭代器Iterator
		ListIterator it = list.listIterator();

		// 遍历

		for(;it.hasNext();) {
		//将下标为1的元素修改为“小鹿”
			list.set(1, "小鹿");
			System.out.print(it.next()+"\t");
		}

运行结果:

list中元素:[小狗, 小猫, 小熊]
插入“小豹子”到下标为2的地方:[小狗, 小猫, 小豹子, 小熊]
小狗	小鹿	小豹子	小熊

HashSet和TreeSet的简单了解:

public static void SetMethod() {
	Set set = new TreeSet();
	set.add("abc");
	set.add("acb");
	set.add("bac");
	set.add("bca");
	System.out.println("自然顺序排列Set"+set);	
	Set set2 = new HashSet();
	set2.add("小虹");
	set2.add("小兰");
	set2.add("小乔");
	set2.add("小白");
	set2.add("小兰");
	System.out.println("无序排列Set2"+set2);	
}
运行结果:

```java
自然顺序排列Set[abc, acb, bac, bca]
无序排列Set2[小虹, 小白, 小兰, 小乔]

    集合中的接口导入都是在util包下面的故导入方式为import java.util.+接口;
    最后总结:ArrayList和LinkedList的区别:
        1、ArrayList底层是数组结构,查询和修改快,时间复杂度为1。
        2、LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢,时间复杂度为n。
共同点:都是线程不安全的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值