认识Collection集合及其使用

  之前学习了数组,可以创建引用类型数组,比如说通过创建几个学生对象求平均成绩。那如果其中一个学生的成绩搞错了,或者想多求几个学生的平均成绩,那怎么办呢?这时候就需要用到集合,首先来说一下集合是什么呢,集合是把具有相同性质的一类东西汇成一个整体。是不是有点抽象呢?俗话说就是存储同一类引用类型对象的容器。它不同于数组的是,它在你不知道有多少对象时集合大小可以一直改变,它还可以修改对象,删除对象等等。

集合的主要操作:

将对象添加到集合

从集合中修改对象

从集合中查找对象

从集合中删除对象

接下来介绍以下集合框架

 

Collection:集合的根接口,没有实现类,用于对子接口的对象引用。

List:Collection的子接口,元素有序,元素可重复。其中有几个实现类,着重讲ArrayList。

Set:Collection的子接口,元素无序,元素不可重复。有两个重要的实现类HushSet和TreeSet。

ArrayList:List接口的实现类,可以向其中添加对象,删除对象等操作。

        /* 
		 * ArrayList的常用操作
		 */
		ArrayList<String> arrayList=new ArrayList<>();
		ArrayList arrayLis=new ArrayList();
		arrayLis.add("abc");
		arrayLis.add("xyz");//添加对象
		int size=arrayLis.size();
		System.out.println(size);//求集合大小
		String string=(String)arrayLis.get(0);
		System.out.println(string);//获取集合中第一个元素
		boolean empty = arrayLis.isEmpty();
		System.out.println(empty);//判断集合是否为空
		arrayLis.remove(0);//删除集合中第一个元素
		arrayLis.clear();//清空集合

HashSet:Set接口的实现类,操作同ArrayList差不多,但是HashSet没有get,remove操作,因为Set无序,所以就没有索引值。

TreeSet:Set接口的实现类。 

/*
 *TreeSet的常用方法
 */
 TreeSet<String> treeSet=new TreeSet<>();
 treeSet.add("123");
 treeSet.add("234");
 treeSet.add("345");
 //treeSet.clear();   清除集合中的元素
 System.out.println(treeSet.first());//返回集合中的第一个元素
 System.out.println(treeSet.last());//返回集合中的最后一个元素
 System.out.println(treeSet.size());//求集合长度
 System.out.println(treeSet.contains("123"));//判断集合中是否包含某元素
 Iterator<String> iterator = treeSet.iterator();

同遍历数组一样,我们也可以遍历集合,这时你会想是不是可以像数组一样使用for循环呢?ArrayList有序,就有索引值可以使用for循环遍历,那HushSet和TreeSet没有索引值,该怎么办呢?这时就需要用到一个重要的方法iterator(迭代器)用来遍历容器中的元素,其中有两个重要的方法iterator.hasNext()判断容器中是否有元素,iterator.next()获取容器中元素。

/*
 * ArrayList遍历集合  HashSet和TreeSet类似
 */
public class Test02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<String> arrayList=new ArrayList<>();
		arrayList.add("Hello");//添加元素
		arrayList.add("Word");
		arrayList.add("!!!");
		Iterator<String> iterator = arrayList.iterator();
		while(iterator.hasNext()){  //判断容器里面是否有元素
			String next = iterator.next();//获取元素
			System.out.print(next+" ");
		}
	}

}

比如说遍历集合,要求按年龄大小打印,这个时候就只能使用TreeSet实现,因为它可以要求元素实现compareable接口,实现compareTo方法默认对元素进行自然排序。

上述集合实现类各有优缺点,没有绝对的完美,根据实际情况选择

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值