存放其他类对象的容器
完成数据库和数据结构的功能
集合类的分类
- List结构集合类 (线性的结构)
ArrayList LinkedList Vector Stack - Map
HashMap结构集合类
以ArrayList为例
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList aa=new ArrayList();//集合类
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
Xs wukong = new Xs ("wukong",1,99);
aa.add(wukong);//add() 将wukong添加到类ArrayList aa 中
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
}
}
class Xs {
private String xingming;
private int chengji;
private int xuehao;
Xs(String xingming,int xuehao ,int chengji ){//构造方法进行初始化
this.xingming=xingming;
this.xuehao=xuehao;
this.chengji=chengji;
}
public String getXingmin() {
return xingming;
}
public int getXuehao() {
return chengji;
}
public int getChengji() {
return chengji;
}
}
结果为:
大小为0
大小为1
集合类遍历:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList aa=new ArrayList();//集合类
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
Xs wukong1 = new Xs ("wukong1",1,99);
Xs wukong2 = new Xs ("wukong2",2,93);
aa.add(wukong1);//add() 将wukong添加到类ArrayList aa 中
aa.add(wukong2);//add() 将wukong添加到类ArrayList aa 中
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
//遍历
for(int i=0;i<aa.size();i++) {
Xs xx=(Xs)aa.get(i);
System.out.println((i+1)+"姓名是"+xx.getXingmin());
}
}
}
class Xs {
private String xingming;
private int chengji;
private int xuehao;
Xs(String xingming,int xuehao ,int chengji ){//构造方法进行初始化
this.xingming=xingming;
this.xuehao=xuehao;
this.chengji=chengji;
}
public String getXingmin() {
return xingming;
}
public int getXuehao() {
return chengji;
}
public int getChengji() {
return chengji;
}
}
输出结果
大小为0
大小为2
1姓名是wukong1
2姓名是wukong2
集合类的删除
remove();方法
代码如下
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList aa=new ArrayList();//集合类
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
Xs wukong1 = new Xs ("wukong1",1,99);
Xs wukong2 = new Xs ("wukong2",2,93);
aa.add(wukong1);//add() 将wukong添加到类ArrayList aa 中
aa.add(wukong2);//add() 将wukong添加到类ArrayList aa 中
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
//遍历
for(int i=0;i<aa.size();i++) {
Xs xx=(Xs)aa.get(i);
System.out.println((i+1)+"姓名是"+xx.getXingmin());
}
aa.remove(0);//集合类对象的删除,wukong1被删除
for(int i=0;i<aa.size();i++) {
Xs xx=(Xs)aa.get(i);
System.out.println((i+1)+"姓名是"+xx.getXingmin());
}
}
}
class Xs {
private String xingming;
private int chengji;
private int xuehao;
Xs(String xingming,int xuehao ,int chengji ){//构造方法进行初始化
this.xingming=xingming;
this.xuehao=xuehao;
this.chengji=chengji;
}
public String getXingmin() {
return xingming;
}
public int getXuehao() {
return chengji;
}
public int getChengji() {
return chengji;
}
}
结果
大小为0
大小为2
1姓名是wukong1
2姓名是wukong2
1姓名是wukong2
选择位置添加
集合类.add(位置, 对象);
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList aa=new ArrayList();//集合类
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
Xs wukong1 = new Xs ("wukong1",1,99);
Xs wukong2 = new Xs ("wukong2",2,93);
Xs wukong3 = new Xs ("wukong3",2,93);
aa.add(wukong1);//add() 将wukong添加到类ArrayList aa 中
aa.add(wukong2);//add() 将wukong添加到类ArrayList aa 中
System.out.println("大小为"+aa.size());//size() 这个类下有多少个对象
//遍历
for(int i=0;i<aa.size();i++) {
Xs xx=(Xs)aa.get(i);
System.out.println((i+1)+"姓名是"+xx.getXingmin());
}
aa.add(1, wukong3);//将wukong3插到坐标为1的位置
for(int i=0;i<aa.size();i++) {
Xs xx=(Xs)aa.get(i);
System.out.println((i+1)+"姓名是"+xx.getXingmin());
}
}
}
class Xs {
private String xingming;
private int chengji;
private int xuehao;
Xs(String xingming,int xuehao ,int chengji ){//构造方法进行初始化
this.xingming=xingming;
this.xuehao=xuehao;
this.chengji=chengji;
}
public String getXingmin() {
return xingming;
}
public int getXuehao() {
return chengji;
}
public int getChengji() {
return chengji;
}
}
结果
大小为0
大小为2
1姓名是wukong1
2姓名是wukong2
1姓名是wukong1
2姓名是wukong3
3姓名是wukong2
LinkedLis集合类
.addFirst();
按照顺序进栈
后进先出,先进后出
.getFirst()取第一个
.getLast()取最底下一个
.addLast();先进先出
Vector
Stack
Hashmap 集合类
List对重复无法处理
Map可以覆盖
添加使用的是put()不是add方法
put(“键值”,对象)
键值有唯一性,一一对应
如果重复会覆盖
取出Map类不需要遍历
.containsKey("键值")方法等同于遍历出键值为"键值"的对象
键值是字符串类型
HashMap的遍历
Iterator it == 对象 . keySet().iterator(); //激活所有键值
while(it.hasNext()){//用while循环取出
String key = it.next().toString();
集合类 sp =(集合类)对象.get(key);
}
集合类的区别
List与Map的区别
键值:唯一标识某一事物成为键值
不是本身的属性,为了区分而单独建立的属性
List没有键值
ArrayList与Vector的区别与HashMap与Hashtable的区别相同
- ArrayList与HashMap都是线程异步,特点是效率高缺点安全性低
- Vector与Hashtable线程是同步的,特点是效率低,但安全性高
网友评论