Java序谈之集合类

来源:互联网 发布:painter自动上色软件 编辑:程序博客网 时间:2024/06/10 21:20

什么是集合?

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

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

数组:

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

集合:

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

集合有哪些类型?

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类中的方法






















原创粉丝点击