您的位置:首页 > 其它

集合框架知识点总结(一)

2015-08-30 17:08 459 查看
知识点总结(一)

1:集合(掌握)

(1)集合的由来

我们需要对多个对象进行存储和获取。可以使用对象数组。

但是,如果对象的个数是变化的,对象数组就解决不了了。

怎么办呢?java就提供了集合类解决。

(2)集合和数组的区别?

A:长度问题

数组长度固定

集合长度可变

B:存储元素类型1

数组只能存储同一种类型

集合可以存储不同类型的对象

C:存储元素类型2

数组可以存储基本类型,也可以存储引用类型。

集合只能存储引用类型。

(3)集合体系的由来:

多种集合的数据结构不同,但是,它们有共性的功能。

通过不断的向上抽取,最终形成了集合的体系结构。

Collection

|--List

|--ArrayList

|--Vector

|--LinkedList

|--Set

|--HashSet

|--TreeSet

(4)Collection接口的功能:

A:添加功能

add(Object obj)

B:删除功能

remove(Object obj)

C:判断功能

contains(Object obj)

D:获取功能

Iterator iterator()

E:长度功能

size()

(5)迭代器

A:迭代器其实就是遍历集合的一种方式。

B:迭代器的使用:

迭代器不能单独使用,它依赖于集合而存在。

C:使用步骤

a:通过集合对象调用iterator()方法得到迭代器对象。

b:通过迭代器对象的hasNext()方法判断是否有元素。

c:通过迭代器对象的next()获取元素。

D:原理:

是以内部类形式存在的。

(6)案例:(掌握)

集合的使用步骤:

A:创建集合对象

B:创建元素对象

C:把元素添加到集合中

D:遍历集合

a:通过集合对象调用iterator()方法得到迭代器对象。

b:通过迭代器对象的hasNext()方法判断是否有元素。

c:通过迭代器对象的next()获取元素。

存储字符串并遍历:

Collection c = new ArrayList();

String s1 = "hello";

String s2 = "world";

String s3 = "java";

c.add(s1);

c.add(s2);

c.add(s3);

Iterator it = c.iterator();

while(it.hasNext()) {

String s = (String) it.next();

System.out.println(s);

}

存储自定义对象并遍历:自己补齐。

2:List及其子类(掌握)

(1)List的特点:

Collection

|--List:元素有序(存入顺序和取出顺序一致),可重复。

|--Set:元素无序,唯一。

(2)List的特有功能:

A:添加功能

add(int index,Object obj)

B:删除功能

remove(int index)

C:获取功能

get(int index)

D:修改功能

set(int index,Object obj)

(3)案例:

List存储字符串并遍历。

List存储自定义对象并遍历。

使用集合存储自定义对象的步骤:

1、定义要存储到集合当中的类

2、创建 集合 集合引用变量 = new 集合();

3、创建要存储到集合当中的类的对象们

4、调用集合方法,存储对应的对象

5、返回对应集合的迭代器

6、使用迭代器判断是否有下个元素

7、如果有下个元素则获取下个元素

(4)ListIterator(理解)

A:可以逆向遍历,但是要先正向遍历,所以一般不用。

B:可以解决并发修改异常问题。

并发修改异常:在用迭代器遍历集合的时候,通过集合去修改了集合的元素。

解决方案:

a:通过列表迭代器遍历,通过列表迭代器修改集合。

b:通过集合遍历,通过集合修改集合。

(二)代码实现部分

1.import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collection;

/*

* Collection: Collection 层次结构 中的根接口

*

* 由于Collection是接口,所以这里使用 使用频率最高的ArrayList子类对象来完成多态。演示Collection的方法。

*

* Collection的普通方法:

* boolean add(E e) 确保此 collection 包含指定的元素(可选操作)。

*/

public class Demo01_Collection {

public static void main(String[] args) {

Person[] persons = new Person[3];

persons[0] = new Person("罗大佑",48);

persons[1] = new Person("周华健",58);

persons[2] = new Person("李宗盛",68);

System.out.println(Arrays.toString(persons));

//创建集合对象

Collection c = new ArrayList();

//创建元素对象

Person p = new Person("罗大佑",48);

Person p2 = new Person("周华健",58);

Person p3 = new Person("李宗盛",68);

Person p4 = new Person("柯受良",90);

//将元素放到集合中

c.add(p);

c.add(p2);

c.add(p3);

c.add(p4);

//查看集合

System.out.println(c);

}

2.

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

/*

* 集合的遍历:

* 集合的迭代

*

* Collection的返回迭代器方法:

* Iterator iterator(): 返回该集合的迭代器对象

*

* Iterator: 迭代器类

* boolean hasNext() 判断是否有下一个元素

* E next() 返回下一个元素

*/

public class Demo05_Iterator {

public static void main(String[] args) {

//创建集合对象

Collection c = new ArrayList();

//创建元素对象

//将元素放到集合中

c.add("唐嫣");

c.add("戚薇");

c.add("赵丽颖");

c.add("杨颖");

System.out.println(c);

//迭代集合

//返回迭代器

Iterator iterator = c.iterator();

//调用迭代器的hashNext与next方法完成迭代

while(iterator.hasNext()) {

Object next = iterator.next();

String sNext = (String)next;

System.out.println(sNext+"救出来了,她很感谢我,为我跳了一支舞");

}

}

}

3.将存储字符串的集合转成数组,并遍历

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collection;

import java.util.Iterator;

/*

* 将存储字符串的集合转成数组,并遍历。

*

* Collection: {"拉登","巴马","加菲","达姆"} >> String[] arr ["拉登","巴马","加菲","达姆"]

*/

public class Test3 {

public static void main(String[] args) {

//创建集合,添加内容

Collection c = new ArrayList();

c.add("拉登");

c.add("巴马");

c.add("加菲");

c.add("达姆");

//创建数组,将集合内容添加到数组

int arrLength = c.size();

String[] names = new String[arrLength];

//定义变量,记录临时索引

int index = 0;

//迭代集合,依次获取每一个元素

Iterator iterator = c.iterator();

while (iterator.hasNext()) {

String name = (String) iterator.next();

//将获取到的每一个名字,添加到数组中

names[index] = name;

//每赋值一个元素,就将数组索引往后+1

index++;

}

//查看数组是否为集合中的内容

System.out.println(Arrays.toString(names));

}

}

4.

import java.util.ArrayList;

import java.util.List;

/*

* List: 有序可重复的Collection集合接口

* ArrayList:List的实现类

*

* 构造方法:

* public ArrayList() 创建一个空的集合

*

* List的普通方法:

* 1:void add(int index, E element) 在列表的指定位置插入指定元素

* 2:E remove(int index) 删除指定索引的元素 返回值为被删除的对象

* 3:E get(int index) 获取指定索引位置的对象

* 4:E set(int index, E element) 将指定索引处的元素,改为新的元素 返回值为被修改的对象

*/

public class Demo01_List {

public static void main(String[] args) {

List list = new ArrayList();

list.add("唐嫣");

list.add("唐嫣");

list.add("张惠妹");

list.add("那英");

list.add("韩红");

System.out.println(list);

//1:void add(int index, E element) 在列表的指定位置插入指定元素

list.add(1, "刘亦菲");

System.out.println(list);

//2:E remove(int index) 删除指定索引的元素

Object remove = list.remove(5);

System.out.println(remove);

System.out.println(list);

//3:E get(int index) 获取指定索引位置的对象

System.out.println(list.get(0));

// System.out.println(list.get(100)); IndexOutOfBoundsException

//4:E set(int index, E element) 将指定索引处的元素,改为新的元素

Object set = list.set(3, "柳岩");

System.out.println(set);

System.out.println(list);

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: