1.1 java集合框架体系 collection map
collectin-有三个子接口 list set queue map-------HashMap
1.2 list的实现类arraylist,linkedlist ,set的实现类 HashSet
list是对象有序并且可以重复的集合,称之为序列
list添加对象的方式 add("对象") ,add(下标,"对象")
addall(new Array.asList(数组));addall(new Array.asList(下标,数组));
llist li<类>=new Arraylist<类>();
list li<类>=new Arraylist<类>();
li.add("第一个对象");
li.add(1,"第二个对象");//指定位置2,插入指定数据
int i=(String)li.get(0); //取出第一个位置(索引)的对象
String [] str={"对象A","对象B"}
li.addall(new Array.asList(str));
String [] str={"对象C","对象D"}
li.addall(new Array.asList(2,str)); //在位置2.插入指定数组数据
//遍历list数据
for(int i=0;i<li.size();i++){
int k=(String)li.get(i);
system.out.print(k);
}
//通过迭代器遍历list
Iterator it=li.iterator()
while(it.hasNext()){
String str=(String)it.next();
}
//通过Foreach遍历list
for(object obj:li){
String str=(String)obj;
}
li.set(0,"修改对象"); //修改下标索引的对象
li.remove(0); //删除指定下标的对象
li.remove("对象"); //删除指定对象
/**
* 取得List中的元素的方法
* @param args
*/
public void testGet() {
int size = coursesToSelect.size();
System.out.println("有如下课程待选:");
for(int i= 0 ; i < size; i++) {
Course cr = (Course) coursesToSelect.get(i);
System.out.println("课程:" + cr.id + ":" + cr.name);
}
}
/**
* 通过迭代器来遍历List
* @param args
*/
public void testIterator() {
//通过集合的iterator方法,取得迭代器的实例
Iterator<Course> it = coursesToSelect.iterator();
System.out.println("有如下课程待选(通过迭代器访问):");
while(it.hasNext()) {
Course cr = it.next();
System.out.println("课程:" + cr.id + ":" + cr.name);
}
}
/**
* 通过for each方法访问集合元素
* @param args
*/
public void testForEach() {
System.out.println("有如下课程待选(通过for each访问):");
for (Object obj : coursesToSelect) {
Course cr = (Course) obj;
System.out.println("课程:" + cr.id + ":" + cr.name);
}
}
2.1set接口极其实现类----Hashset(哈希集)
set是元素无序并且不可重复的集合---集
set中,添加某个对象,无论添加多少次,最终只会保留一个该对象。
由于set属于无序列表所以set中不存在set,get方法可以设置和获取集合中的值,也不可以通过for遍历取得里面的值,只能通过foreach和迭代器进行遍历,关于从父接口collection继承的add() addall(),remove() removeall()方法的使用如同list。
set course=new Hashset();
course.add("第一个对象");
//通过Foreach遍历list
for(object obj:course){
object obj=obj;
}
//通过迭代器遍历list
Iterator it=course.iterator()
while(it.hasNext()){
Object obj =course.next();
}
3.1java中的map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,它的主要实现类有HashMap、LinkedHashMap、TreeMap。
//创建实例化一个map集合 <k,v>为泛型,表示键必须为k类型,值必须为v类型
Map mm<k,v>=new Hashmap<k,v>();
//给map接口添加键值对
mm.put(key,values);
//删除键值为key的键值对
mm.remove(key);
//查找某个键的值
V v= mm.get(key);
//通过迭代器遍历map
Set<k> keys=mm.keyset();
Iterator<k> it= Keys.iterator();
while(it.hasNext()){
k kw=it.next();
}
/**
* 测试Map的keySet方法,通过键得到值
*/
public void testKeySet() {
// 通过keySet方法,返回Map中的所有“键”的Set集合
Set<String> keySet = mm.keySet();
// 取得mm的容量
System.out.println("总共有:" + mm.size() + "个学生!");
// 遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
for (String stuId : keySet) {
Student st = mm.get(stuId);
if (st != null)
System.out.println("学生:" + st.name);
}
}
/**
* 通过entrySet方法来遍历Map
*/
public void testEntrySet() {
// 通过entrySet方法,返回Map中的所有键值对
Set<Entry<String, Student>> entrySet = mm.entrySet();
for (Entry<String, Student> entry : entrySet) {
System.out.println("取得键:" + entry.getKey());
System.out.println("对应的值为:" + entry.getValue().name);
}
}