Collection接口之List、泛型

Collection接口

  • List、Queue、Set的父接口
  • 定义了可用于操作List、Set、Queue的方法——增删改查

List接口及其实现类:ArrayList

  • List是元素有序且可重复的集合、被称为序列
  • List可以精确的控制每个元素的插入位置、或删除指定位置的元素
  • ArrayList——数组序列,是List接口的重要实现类
  • ArrayList底层由数组实现

List的增加和遍历方法:

 1 import java.util.*;
 2 class ListDemo3
 3 {
 4     public static void main(String[] args)
 5     {
 6         List list = new ArrayList();
 7         add(list);
 8         //select(list,0);
 9         testIterator(list);
10     }
11     //添加
12     public static void add(List list)
13     {
14         course c1 = new course("1","离散数学");
15         course c2 = new course("2","JDBC");
16         course [] c3 = {new course("3","C语言"),new course("4","高等数学")};
17
18         list.add(c1);
19         list.add(0,c2);//添加到指定位置
20         //addAll要接收一个Collction的具体实例,通过Arrays的asList方法将course数组转为List
21         list.addAll(Arrays.asList(c3));//添加数组
22         list.addAll(0,Arrays.asList(c3));//添加到指定位置(list中的元素是可重复的)
23
24     }
25
26     //查找
27     public static void select(List list,int a)
28     {
29         System.out.println("通过get方法访问:");
30         //一个对象被添加到集合中去时会将其转为Object类型存储到集合中
31         //所以需要将其强转。
32         System.out.println(((course)list.get(a)).name);
33         //通过for循环遍历list中的元素
34         int size = list.size();
35         for(int i=0; i<size; i++)
36         {
37             course c = (course)list.get(i);
38             System.out.println(c.id+"..."+c.name);
39         }
40     }
41     //通过迭代器访问
42     //collection接口中定义了一个Iterator方法,可以返回一个当前
43     //集合对象的迭代器,然后通过迭代器去遍历当前集合中的每一个元素
44     //迭代器是用来遍历集合中元素的,本身不具备任何存储元素的功能
45     //(迭代器依赖与集合存在本身不能独立存在)
46     public static void testIterator(List list)
47     {
48         Iterator it = list.iterator();
49         System.out.println("通过迭代器遍历List:");
50         //Iterator是一个接口,其hasNext方法若还有元素则返回真
51         while (it.hasNext())
52         {
53             //Iterator的next方法返回迭代的下一个元素
54             course c = (course)it.next();
55             System.out.println(c.id+"...."+c.name);
56         }
57     }
58     //通过foreach迭代集合
59     public static void testForEach(List list)
60     {
61         for (Object obj : list)
62         {
63             course c = (course)obj;
64             System.out.println(c.id+"..."+c.name);
65         }
66     }
67 }
68
69 //课程类
70 class course
71 {
72     String id;
73     String name;
74     course(String id, String name)
75     {
76         this.id = id;
77         this.name = name;
78     }
79 }

ListDemo

List的修改和删除方法:

 1 import java.util.*;
 2 class ListDemo4
 3 {
 4     public static void main(String[] args)
 5     {
 6         List list = new ArrayList();
 7         add(list);
 8         change(list);
 9         testForeach(list);
10         testRemove(list,1);
11         testForeach(list);
12     }
13
14     public static void add(List list)
15     {
16         course [] arr =
17             {new course("1","JDBC"),new course("2","MySQL"),new course("3","大神")};
18         list.addAll(Arrays.asList(arr));
19     }
20     //List集合修改的方法
21     public static void change(List list)
22     {
23         list.set(1,new course("3","首席技术官"));
24     }
25     //通过for each遍历集合
26     public static void testForeach(List list)
27     {
28         for(Object obj : list)
29         {
30             course c = (course)obj;
31             System.out.println(c.id+"..."+c.name);
32         }
33     }
34     //List删除的方法
35     public static void testRemove(List list,int id)
36     {
37         //删除单个
38         list.remove(id);
39         System.out.println("删除了课程");
40         //删除单个
41         course c1 = (course)list.get(0);
42         list.remove(c1);
43         //删除多个
44         course [] c = {list.get(0),list.get(1)};
45         list.removeAll(Arrays.asList(c));
46     }
47
48 }
49 //课程类
50 class course
51 {
52     String id;
53     String name;
54     course(String id, String name)
55     {
56         this.id = id;
57         this.name = name;
58     }
59 }

ListDemo

泛型:

  • 集合中的元素,可以是任意类型的对象(对象的引用)如果把某个对象放入集合,则会忽略它的类型。而把他当做Object处理
  • 泛型则是规定了某个集合只可以存放特定类型的对象。会在编译期间进行类型检查,可以直接按指定类型获取集合元素
  • 泛型集合中不能添加泛型规定的类型及其子类型以外的对象。
  • 泛型集合可以添加泛型的子类型的对象实例
  • 泛型集合中的规定类型不能使用基本数据类型,但可以使用包装类

 1 import java.util.*;
 2 class GenericDemo
 3 {
 4     public static void main(String[] args)
 5     {
 6         //generic();
 7         generic_1();
 8     }
 9     public static void generic()
10     {
11         List<courses> list = new ArrayList<courses>();
12         courses [] arr = {new courses("1","首席技术官"),
13             new courses("2","首席架构师"),new courses("3","项目经理"),new courses("4","独当一面")};
14
15         list.addAll(Arrays.asList(arr));
16         //泛型能添加泛型规定类型的子类型。
17         childCourses cc = new childCourses();
18         cc.id="1";
19         cc.name="时代的终结者";
20         list.add(cc);
21         //因为规定了泛型所以可以直接取出来而不用担心类型。
22         //list.add("adfas");无法添加泛型规定以外的对象
23         for (courses c : list)
24         {
25             System.out.println(c.id+":"+c.name);
26         }
27     }
28     //基本类型必须使用包装类使用泛型
29     public static void generic_1()
30     {
31         List<Integer> list = new ArrayList<Integer>();
32
33         list.add(1);
34         System.out.println("基本类型必须使用包装类作为泛型:"+list.get(0));
35     }
36
37 }
38 class courses
39 {
40     String name;
41     String id;
42     courses(String name, String id)
43     {
44         this.name = name;
45         this.id = id;
46     }
47     courses()
48     {
49     }
50 }
51 class childCourses extends courses
52 {
53
54 }

GenericDemo

时间: 2024-08-24 11:11:04

Collection接口之List、泛型的相关文章

Java——集合(Collection接口),迭代器,增强for循环,泛型

一.集合 Collection接口中的方法是集合中所有实现类必须拥有的方法. ArrayList implements List List extends Collection 1.基本使用 其他 import java.util.ArrayList; /* * 集合体系, * 目标 集合本身是一个存储的容器: * 必须使用集合存储对象 * 遍历集合,取出对象 * 集合自己的特性 */ public class ArrayListDemo { public static void main(St

Java中Collection接口的用法

Collection接口是List.Set.Queue接口的父接口Collection接口定义了可用于操作List.Set和Queue的方法--增删改查List接口及其实现类--ArrayListList是元素有序并且可以重复的集合,被称为序列.List可以精确的控制每个元素的插入位置,或删除某个位置元素List有add()插入方法和get()获取方法ArrayList--数组序列,是List的一个重要实现类ArrayList底层是由数组实现的,这也是其名字的由来 List接口 List中的元素

java.util (Collection接口和Map接口)

1:Collection和Map接口的几个主要继承和实现类                  1.1  Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口"如List和Set. 如

Java Collection Framework : Collection 接口

一.要点 Collection 接口 Collection 接口的默认实现:AbstractCollection Optional operations(可选方法) 二.Collection 接口 1.JDK 对 Collection 接口的描述 Collection 接口是 Collection 层次结构中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection(List,Queue) 允许有重复的元素,而另一些(Set)则不允许.

集合框架之Collection接口

Collection 层次结构中的根接口.Collection表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 collection 是有序的,而另一些则是无序的.JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现.此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection. 包 (bag) 或多集合(multiset)(可能包含重复元素的无

I学霸官方免费教程三十五:Java集合框架之Collection接口和Collections类

Collection接口 Collection接口是List和Set接口的父接口,其中主要定义了一些集合基本操作的方法,包括与Iterator之间的关系List  extends  CollectionArrayList  implements  ListLinkedList  implements  ListVector  implements  ListSet  extends  CollectionHashSet  implements  SetSortedSet  extends  Se

java数据结构学习之—Collection接口

Collection接口代表一组对象,这组对象称为它的元素,有些实现(如链表)是无序的,有些实现(集合和映射)是有序的,有些实现是允许重复的,而有些实现不允许重复,从java5开始,Collection接口和整个集合类API都使用泛型,所有容器都支持一下操作: 1.boolean isEmpty() 如果容器不包含任何元素,则返回true,否则返回false. 2.int size() 返回容器中元素的个数 3.boolean add(AnyType x) 将项X添加到容器中,如果操作成功,则返

集合类 collection接口 ArrayList

数组: 存储同一种数据类型的集合容器.数组的特点:1. 只能存储同一种数据类型的数据.2. 一旦初始化,长度固定. 3. 数组中的元素与元素之间的内存地址是连续的. : Object类型的数组可以存储任意类型的数据. 集合:集合是存储对象数据的集合容器.集合比数组的优势:1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据.2. 集合的长度是会发生变化的,数组的长度是固定的. Collection接口提供的方法: 提供的实现类继承关系如下: ------------| Col

疯狂Java学习笔记(34)----------Iterator、Collection接口以及foreach

Iterator.Collection接口: 如下图:Iterator.Collection同在一个包中: 红字部分使我们经常遇到的,但是遇到又不知道怎么去理解,去应用它! Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下: 2. Set接口 Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复. 特征:无序且不可重复. 3.