您的位置:首页 > 其它

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

2015-08-25 00:20 232 查看


                                           黑马程序员  集合框架知识点

         ------- android培训java培训、期待与您交流!----------
知识点总结(一)

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:
4000
可以逆向遍历,但是要先正向遍历,所以一般不用。
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);
}

}



(三)一点看法;集合这是基础班的重点要掌握的内容!以上是知识点总结和相关代码的实现!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: