18基本类型包装类_集合入门
导语:
think after i wang to write
1. CollectionDemo
package cn.itcast.api.c.collection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
/**
* @param args
*/
public static void main(String[] args) {
// Collection coll = new ArrayList();//目前演示Collection的方法,不关系子类对象的类型是什么。
// collectionDemo(coll);
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
collectionDemo2(c1, c2);
}
// 演示Collection中带all方法 。
public static void collectionDemo2(Collection c1,Collection c2){
//1,给两个集合添加元素。
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c2.add("abc1");
c2.add("abc4");
c2.add("abc5");
//添加所有c2的元素到c1中。
// c1.addAll(c2);
// boolean b = c1.containsAll(c2);
// System.out.println("b="+b);
//删除c1中所有和c2相同的元素。
// c1.removeAll(c2);
//保留了c1中和c2相同的元素。
c1.retainAll(c)ll(c2);
//打印。
System.out.println("c1="+c1);
}
// 演示Collection中常见的一般方法。
public static void collectionDemo(Collection coll) {
//1,往集合中添加对象元素。add(Object);
coll.add("itcast1");
coll.add("itcast2");
coll.add("itcast3");
//2,删除。
// coll.remove("itcast2");
//3,判断是否包含。
coll.contains("itcast11");
//4,清除。
coll.clear();
//把集合打印一下。
System.out.println(coll);//[itcast1, itcast2, itcast3]
}
}
2. CollectionDemo2
package cn.itcast.api.c.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo2 {
/**
* @param args
*/
public static void main(String[] args) {
Collection coll = new ArrayList();
/*
* 细节。
* 1,集合中存储其实都是对象的地址。
* 2,集合中可以存储基本数值吗?不行,但是jdk1.5以后可以这么写,但是存储的还是对象(基本数据类型包装类对象)。
* 3,存储时提升了Object。取出时要使用元素的特有内容,必须向下转型。
*/
//coll存储元素。
// coll.add("abc1");//存储的是对象的引用。
// coll.add(3);//coll.add(Integer.valueOf(3));//自动装箱。
coll.add("itcast1");//Object obj = "itcast1";提升为了Object。
coll.add("hehe");//
coll.add("nba");
for (Iterator it = coll.iterator(); it.hasNext();) {
Object object = it.next();//取出来的都是Object。需要使用元素的特有方法时需要向下转型。
String str = (String)object;
System.out.println(str.length());
}
}
}
3. IteratorDemo
package cn.itcast.api.d.iterator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class IteratorDemo {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 集合的取出方式。
*
* 迭代器是Collection集合中通用的取出方式。
*
*/
//1,创建集合对象。
Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
/*//2.获取容器的迭代器对象。通过iterator方法。
Iterator it = coll.iterator();
//3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
while(it.hasNext()){
System.out.println(it.next());
}*/
for (Iterator it = coll.iterator(); it.hasNext();) {
}
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());//java.util.NoSuchElementException没有这个元素异常。
}
}
4. CollectionTest
package cn.itcast.api.e.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import cn.itcast.domain.Student;
public class CollectionTest {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 往集合中存储自定义的对象。
*/
//1,创建集合对象。
Collection coll = new ArrayList();
//2,添加具体的学生元素
Student stu = new Student("lisi1",21);
coll.add(stu);
coll.add(stu);
coll.add(new Student("lisi2",22));
coll.add(new Student("lisi3",23));
coll.add(new Student("lisi3",23));
/*
* 什么是重复呢?都是有判断依据的。
* 依据都是通过方法来完成的。
*
*/
for (Iterator it = coll.iterator(); it.hasNext();) {
Student student = (Student) it.next();
System.out.println(student.getName());
}
}
}
5. ListDemo
package cn.itcast.api.f.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import cn.itcast.domain.Student;
public class ListDemo {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 使用List,解决,插入元素的问题。因为add方法追加。
* List接口的特有方法,全都是围绕索引来定义的。
*
* List获取元素的方式有两种:一种是迭代,一种 遍历+get
*
* List接口是支持对元素进行curd增删改查动作的。
*
*/
List list = new ArrayList();
//1,添加元素。
list.add(new Student("wangcai1",21));
list.add(new Student("wangcai2",22));
list.add(new Student("wangcai3",23));
//2,插入元素。
// list.add(1, new Student("xiaoqiang",25));
//3,删除元素。
// list.remove(2);//IndexOutOfBoundsException
//3,修改元素。
list.set(1, new Student("xiaoming",11));
// Object obj = list.get(1);
// System.out.println(obj);
for (int i = 0; i < list.size(); i++) {
System.out.println("get("+i+"):"+list.get(i));
}
// for (Iterator it = list.iterator(); it.hasNext();) {
// Student stu = (Student) it.next();
// System.out.println(stu);
// }
}
}
6. Student
package cn.itcast.domain;
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;
}
/**
* 建立学生对象判断相同的依据。覆盖equals方法,只要同姓名同年龄就是同一人。视为重复元素。
* @return
*/
public String getName() {
return name;
}
@Override
public boolean equals(Object obj) {
if(this== obj)
return true;
if(!(obj instanceof Student)){
throw new ClassCastException("类型错误");
}
Student stu = (Student)obj;
return this.name.equals(stu.name) && this.age == stu.age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}