黑马程序员_java基础之集合(collection及其子类)
来源:互联网 发布:大学生网络惨案 编辑:程序博客网 时间:2024/06/04 19:15
------- android培训、java培训、期待与您交流! ----------
1.集合
在java中,有多个容器, 比如有 数组, 字符串缓冲区, 还有我们要学习的集合, 其实集合它就是个容器,用来存储多个数据的
1.1分类: Collection(接口)
List(接口)
ArrayList(具体类)
Vector(具体类)
LinkedList(具体类)
Set(接口)
HashSet(具体类)
TreeSet(具体类)
1.2数组与集合的区别:
数组: 长度固定 集合: 长度可变
1.3Collection(接口)的方法:
添加功能:
booleanadd(Object e) 向当前集合中添加给定的元素对象
booleanaddAll(Collection c) 向当前集合中添加给定的集合元素
删除功能:
void clear() 把当前集合中的元素清空
boolean remove(Object o) 把当前集合中,给定的元素对象删除
boolean removeAll(Collection c) 在当前集合中, 将给定的集合元素 删除
判断功能:
boolean contains(Object o) 判断当前集合中,是否包含给定的元素对象
boolean containsAll(Collection c) 判断当前集合中,是否包含给定的集合中的元素对象
boolean isEmpty() 判断当前集合是否为空的集合
遍历功能:
Iterator iterator() 迭代器, 作用就是用来遍历集合的, 得到集合中的每一个元素
交集功能:
boolean retainAll(Collection c) 获取当前集合与给定集合中 交集的元素对象
长度功能:
int size() 获取集合中元素的个数
转换功能:
Object[] toArray() 把当前集合中的元素, 转存到 数组中
package cn.bean;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;public class ListStudent {public static void main(String[] args) {List list = new ArrayList();Student s1 = new Student("111",1);Student s2 = new Student("222",2);list.add(s1);list.add(s2);method1(list);method2(list);method3(list);method4(list);}private static void method4(List list) {for(int i= 0;i<list.size();i++){System.out.println(list.get(i));}}private static void method3(List list) {ListIterator it = list.listIterator();while(it.hasNext()){System.out.println(it.next());}}private static void method2(List list) {for(Iterator it = list.iterator();it.hasNext();){System.out.println(it.next());}}private static void method1(List list) {Object[] obj = list.toArray();for (int i = 0;i<obj.length;i++){System.out.println(obj[i]);}}}package cn.bean;public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String toString() {return "Student [name=" + name + ", age=" + age + "]";}}
2. 泛型: Generic
好处:
1:可以把代码运行的时候才能看到的错误,提前到,编写代码的阶段
把运行期的错误,提前到编译期
2:省去了强制转换的麻烦
3:有效的避免了类型转换异常 ClassCastException
package cn.mygeneric;public class MyGenericDemo {public static void main(String[] args) {MyGeneric<Person> mg = new MyGeneric<Person>();Person p1 = new Person("001","小李");//Person p2 = new Person("002","小红");mg.setA(p1);//mg.setA(p2);System.out.println(mg.getA());}}package cn.mygeneric;public class Person {private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Person() {super();}public Person(String id, String name) {super();this.id = id;this.name = name;}public String toString() {return "Person [id=" + id + ", name=" + name + "]";}}
3. ArrayList、 Vector、 LinkedList三者的区别
ArrayList:
底层: 采用数组结构
特点: 线程不同步-- 不安全--效率高】
增删慢,查找快
jdk1.2
Vector:
底层: 采用数组结构
特点: 线程同步 -- 安全 --效率低
增删慢,查找快
jdk1.0
LinkedList:
底层: 采用链表结构
特点: 线程不同步-- 不安全--效率高
增删快,查找慢
jdk1.2
数组中有length方法吗? 字符串中有length()方法吗? 集合中有length()方法吗?
答:数组中没有length方法,有的是length属性
字符串中有length方法
集合中没有length方法, 有的是 size方法
package cn.ArrayListTest;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ArrayListDemop {public static void main(String[] args) {List<Person> list = new ArrayList<Person>();Person p1 = new Person("AAA",222);Person p2 = new Person("AA",22);Person p3 = new Person("A",2);list.add(p1);list.add(p2);list.add(p3);for(ListIterator<Person> it = list.listIterator();it.hasNext();){Person p = it.next();System.out.println(p);//for(int i = 0 ;i<list.size();i++){//Person p = list.get(i);//System.out.println(p);//}}}}package cn.ArrayLisetForeach;public class Person {private String name;private int age;public Person() {super();}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}}
4.增强for循环
package cn.ArrayLisetForeach;import java.util.ArrayList;public class ForEachTest {public static void main(String[] args) {ArrayList<Person> list = new ArrayList<Person>();Person p1 = new Person("小名",12);Person p2 = new Person("小啊",13);Person p3 = new Person("小哦",14);list.add(p1);list.add(p2);list.add(p3);for (Person person : list) {System.out.println(person);}}}package cn.ArrayLisetForeach;public class Person {private String name;private int age;public Person() {super();}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}}
- 黑马程序员_java基础之集合(collection及其子类)
- 黑马程序员_java基础之集合(map及其子类)
- 黑马程序员_Java集合Collection
- 黑马程序员_JAVA学习日记_JAVA中API:集合框架1(Collection,List,Set及其子类和迭代器的应用)
- 黑马程序员_Java基础_集合框架成员Collection
- 黑马程序员_Java基础之集合
- 黑马程序员_java基础之集合
- 黑马程序员---java基础之集合Collection
- 黑马程序员_Java集合-Collection<T>接口
- 黑马程序员———集合及其collection接口及其子类的简单介绍
- 黑马程序员_java基础集合
- 黑马程序员_java之集合
- 黑马程序员_JAVA之集合
- 黑马程序员_java基础复习之八集合
- 黑马程序员_java基础篇之集合框架
- 黑马程序员_Java(对象数组,集合Collection,集合list)
- 黑马程序员_java基础6-集合框架Collection和泛型
- 黑马程序员_java基础6-集合框架Collection和泛型
- 想法题+思路(zjnu training for 神牛)
- bootstrap学习[1]
- Android必知必会--NinePatch图片制作
- Qt容器之QVector,QMap,QHash,QList等注意事项
- 将yuyv格式图像转为IplImage(彩色)
- 黑马程序员_java基础之集合(collection及其子类)
- java生成数字证书(二、私钥数字证书)
- OpenStack的私有云解决方案
- java基础---封装、继承、多态
- 在C#里利用XML进行数据读写以及修改
- P122.20
- 二分查找
- Swift - 属性 - 属性监视器(didSet、willSet)
- 主要学习类型之间的转换