Java序谈之集合类

什么是集合?

集合也是一种存放数据的容器,只不过存放的数据类型是对象的引用

集合和数组之间有什么区别?

数组:

  • 数组存放相同类型的数据,可存放引用数据类型,基本数据类型
  • 数组的长度不可变

集合:

  • 数组可存放不同类型的数据,存放引用数据类型。但是由于集合在添加元素的时候有自动装箱的功能,也可以存放基本数据类型
  • 集合的长度可变

集合有哪些类型?

Java序谈之集合类_第1张图片

Set和List有什么区别?

List

  • 有角标
  • 按照顺序排列
  • 可以有重复数据

Set:

  • 无角标
  • 不按照顺序排列
  • 不可以有重复数据

集合有哪些方法?判断是否是为空

1、判断是否为空

关键词:isEmpty

返回值类型:boolean

代码示例:

		boolean b1 = collection.isEmpty();
		System.out.println(b1);
		System.out.println(collection);

2、添加

关键词:append  appendAll

返回值类型:boolean

代码示例:

		Collection collection = new ArrayList();
		collection.add("wangning");
		Collection collection1 = new ArrayList();
		collection1.add("henaini");
		collection.add(collection1);
		collection.addAll(collection1);
		System.out.println(collection);

分析:返回值结果都是true

3、删除

关键词:remove  removeAll

返回值类型:boolean

代码示例:

		Collection collection = new ArrayList();
		collection.add("wangning");
		collection.add("woaini");
		collection.remove("woain");
		Collection collection1 = new ArrayList();
		collection.add("woain");
		System.out.println(collection.removeAll(collection1));

分析:当删除的元素自身集合中没有的时候会返回false

4、包含

关键词:contains  containsAll

返回值类型:boolean

代码示例:

		Collection collection = new ArrayList();
		collection.add("wangning");
		collection.add("woaini");
		Collection collection1 = new ArrayList();
		collection1.add("wangnin");
		collection1.add("woain");
		System.out.println(collection.contains("wang"));
		System.out.println(collection.containsAll(collection1));、

5、保留相同部分

关键词:retainAll

返回值类型:boolean

代码示例:

		Collection collection = new ArrayList();
		collection.add("wangning");
		collection.add("woaini");
		Collection collection1 = new ArrayList();
		collection1.add("wangning");
		collection1.add("woaini");
		System.out.println(collection.retainAll(collection1));
分析:当集合在retainAll之后的结果如果发生改变,返回true,如果未发生改变返回false

6、集合长度

关键词:size

返回值类型:int

代码示例:

		System.out.println(collection.size());

7、清空集合

关键词:clear

返回值类型:void

代码示例:

		collection.clear();

8、转换为数组

关键词:toArray

返回值类型:Object  [ ]

代码示例:

		Object[] array = collection.toArray();

迭代器

迭代器用于数组的遍历

如何获取迭代器?

		Iterator iterator = collection.iterator();

迭代器有哪些方法?

1、判断时候有值

关键词:hasNext( )

返回值类型:

代码示例:

iterator.hasNext()

2、返回集合中的值

关键词:next( )

返回值类型:集合中数值

代码示例:

iterator.next()

如何遍历集合中的元素?

1、使用toArray( )的方法,再将数组中的元素输出

代码示例:

		Collection collection = new ArrayList();
		collection.add(new Student("wangning",18));//这时候相当于向上转型,student类向上转型为object类,要向下转型
		collection.add(new Student("wangning",18));//内部都是object类型的
		collection.add(new Student("wangning",18));
		//集合转数组,强转数组类型,不能把数组中的元素强转(不能再前面加上student就是要求数组中元素都是student类型)指标不治根
		Object [] array = collection.toArray();
		for(int x = 0; x< array.length; x++) {
			Student student = (Student)(array[x]);//向上转型之后要向下转型
			//数组遍历中,要把数组中每一个对象都进行向下转型
			System.out.println(student.getName());
		}

分析:在这里使用了Student对象,之后被向上转型为Object类型,将集合转换成数组之后数组中的值还是Object类型,在while循环中使用向下转型的操作,才可以使用对象的

getName( )等方法

2、使用iterator迭代器,利用迭代器的方法输出

代码示例:

		Collection collection = new ArrayList();
		collection.add(new Student("wangning",18));
		collection.add(new Student("wangning",18));
		collection.add(new Student("wangning",18));
		//获取集合中的迭代器
		Iterator iterator = collection.iterator();//迭代器中的元素还是object类型的,需要向下转型
		//使用迭代器遍历
		while(iterator.hasNext()) {
			Student student = (Student)(iterator.next());
			System.out.println(student.getName());
		}
		}

分析:在这里获取集合的迭代器,之后使用.hasNext( )作为判断,执行循环,循环中需要向下转型将Object类型-->转型为Student类型,而后使用对象调用Student类中的方法






















你可能感兴趣的:(Java)