java自学笔记—Collection
1.Collection为单列集合,Map为双列集合
2.可以存放多个对象,为Object
3.有些实现类有序List,有些无序Set
4.没有直接的实现子类,通过子接口Set和List实现
Collection集合的实现接口如下
Map集合的实现接口如下
迭代器遍历
所有实现Collection接口的子类有迭代器Iterator,可用于遍历
/**
* @author Lspero
* @version 1.0
*/
@SuppressWarnings("all")
public class CollectionInterator {
public static void main(String[] args) {
Collection con = new ArrayList();
con.add(new Book("三国演义", "罗贯中",10.1));
con.add(new Book("小李飞刀", "古龙",25.6));
con.add(new Book("红楼梦", "曹雪芹",34.3));
System.out.println("con = " + con);
// 先得到对应的迭代器
Iterator iterator = con.iterator();
//使用while循环遍历,快捷键init回车,Ctrl+J显示快捷键
while (iterator.hasNext()){
Object object = iterator.next();
System.out.println(object);
}
//如果希望再次遍历,需要重置迭代器
iterator = con.iterator();
System.out.println("==============================================");
//增强for循环,集合和数组都可以使用
//底层依然是迭代器,快捷方式I
for(Object book : con){
System.out.println(book);
}
}
}
常用方法
/**
* @author Lspero
* @version 1.0
*/
public class CollectionMethod {
@SuppressWarnings("all")
public static void main(String[] args) {
List list = new ArrayList();
//添加,可以为空null
list.add("jack");
list.add(10); //list.add(new Integer(10))
list.add(true);
System.out.println(list);
//删除
list.remove(0);
System.out.println(list);
list.remove(true);
System.out.println(list);
//查找
System.out.println(list.contains("jack"));
System.out.println(list.size());
System.out.println(list.isEmpty());
// list.clear();
System.out.println(list);
//可以添加或删除一个列表
ArrayList list2 = new ArrayList();
list2.add("红楼梦");
list2.add("三国演义");
list.addAll(list2);
System.out.println(list);
list.containsAll(list2);
list.removeAll(list2);
// Interater迭代器,用于遍历集合
}
}
子接口List
/**
* @author Lspero
* @version 1.0
*/
public class List_ {
@SuppressWarnings("all")
public static void main(String[] args) {
// 有序存储,且可以重复
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("mary");
list.add("tom");
System.out.println("list = " + list);
// 支持索引
System.out.println(list.get(3));
System.out.println("================");
// 遍历方式 迭代器 增强for 普通for
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.print(next);
}
System.out.println();
for (Object o : list) {
System.out.print(o);
}
System.out.println();
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
}
}
List常用方法
/**
* @author Lspero
* @version 1.0
*/
public class ListMethod {
public static void main(String[] args) {
List list = new ArrayList();
list.add("张三丰");
list.add("贾宝玉");
//在index = 1 插入一个对象
list.add(1, "薛宝钗");
List list2 = new ArrayList();
list2.add("jack");
list2.add("tom");
list.addAll(1, list2);
System.out.println(list);
System.out.println(list.indexOf("tom"));
list.add("张三丰");
System.out.println(list);
System.out.println(list.lastIndexOf("张三丰"));
list.remove(0);
System.out.println(list);
// 替换,索引一定要存在
list.set(0 ,"杰克");
System.out.println(list);
// 返回子集和 左闭右开
List returnlist = list.subList(0, 2);
System.out.println(returnlist);
}
}