文章目录
【1. Collection接口】
package com.msb;
import java.util.*;
public class testc {
public static void main(String[] args) {
Collection c = new ArrayList();
Collection c1 = new ArrayList();
c.add(10);//自动装箱,单个添加
c1.addAll(c);//添加集合
List l = Arrays.asList(new Integer[]{1, 2, 3});
List l1 = Arrays.asList(new int[]{1, 2, 3});//[I@1b6d3586]
c.addAll(l);//添加集合
c.addAll(l1);//为什么添加效果不一样呢??
// c.clear();//清除
System.out.println(c.size());//集合长度
System.out.println(c.isEmpty());//是否为空
for (Object o:c) {//遍历集合
System.out.print(o);
}
Iterator it = c.iterator();
while (it.hasNext()){//遍历集合
System.out.println(it.next());
}
}
}
【1.1 List接口】
不唯一、有序
package com.msb;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestList {
public static void main(String[] args) {
/*
* 1.增加:add set
* 2.删除: remove
* 3.修改
* 4.查看: get
* 5.判断
* */
List list = new ArrayList();//接口 = 具体实现类
list.add(1);
list.add(1,6);//index取值范围[0,list.size()]
list.set(1,29);//index取值范围[0,list.size())
//list.remove(1);//list中存储的是Interger,删除指定下标的值
Object o = list.get(1);//获取指定下标的值
for (int i = 0; i < list.size(); i++) {//遍历循环
System.out.println(list.get(i));
}
System.out.println("*******************************");
for (Object o1:list) {//遍历循环
System.out.println(o1);
}
System.out.println("*******************************");
Iterator it = list.iterator();//遍历循环
while (it.hasNext()){
System.out.println(it.next());
}
// System.out.println(list);
// System.out.println(o);
}
}
【1.1.1 ArrayList实现类】
package com.msb;
import java.util.*;
public class TestArrayList {
public static void main(String[] args) {
//接口 = 实现类
Collection col = new ArrayList();
List list = new ArrayList();
//直接创建实现类
ArrayList<String> al = new ArrayList();
al.add("a");
al.add("b");
al.add("c");
al.add("e");
System.out.println(al);
//在c之后添加字符d
//方法:遍历
//Iterator<String> it = al.iterator(); //--->iterator没有添加元素方法。
ListIterator<String> it = al.listIterator();
/* while (it.hasNext()){
if("c".equals(it.next())){
//al.add("d");//--->遍历没有作用,ArrayList 的add()功能是在最后增加值。
it.add("d");
break;
}
}*/
System.out.println(al);
System.out.println(it.previousIndex());//当前游标前一个索引值
System.out.println(it.nextIndex());//当前游标位置
//正向遍历
while (it.hasNext()){
System.out.println(it.next());
}
//逆向遍历
//ListIterator<String> it1 = al.listIterator();
while (it.hasPrevious()){//如果直接用逆向遍历是不可以的。游标不在最后一个,不会遍历、
System.out.println(it.previous());
}
}
}
【1.1.2 LinkedList实现类】
package com.msb;
import java.util.Iterator;
import java.util.LinkedList;
public class TestLinkedList {
public static void main(String[] args) {
/*
* 增加
* 查看
*
* */
LinkedList<String> list = new LinkedList();//实例化,指定泛型
//增加单个元素,可以添加重复数据
list.add("a");
list.add("a");
list.add("b");
//在最前端,添加元素
list.addFirst("first");
list.offerFirst("offerfirst");
//在尾端,添加元素
list.addLast("last");
list.offer("offer");
list.offerLast("offerlast");
//遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));//1.根据索引,得到元素
}
System.out.println("------------------------------");
for (String s : list){
System.out.println(s);//2.
}
/* System.out.println("------------------------------");
Iterator<String> it = list.iterator();//3.迭代器
while (it.hasNext()){
System.out.println(it.next());
}*/
System.out.println("------------------------------");
for( Iterator<String> it = list.iterator();it.hasNext();){//节省内存,it在循环内部,使用完之后就释放
System.out.println(it.next());
}
//删除第一个元素,并且返回第一个元素的值。当列表为空时,返回值不同。
{
System.out.println(list.poll());
}
System.out.println(list.pollFirst());
System.out.println(list.removeFirst());
//删除最后一个元素,并且返回元素的值。
System.out.println(list.pollLast());
System.out.println(list.removeLast());
//清空集合
list.clear();
System.out.println(list);
}
}
【1.2 Set接口】
【1.2.1 HashSet实现类】
唯一、无序
package com.msb;
import java.util.HashSet;
import java.util.Iterator;
public class TestHashSet {
public static void main(String[] args) {
//创建HashSet集合
HashSet<Integer> hs = new HashSet();
HashSet<Person> hsp = new HashSet();
/*
* 自定义类使用HashSet
* 1.重写 HashCode 和 equals方法,才可以避免构造方法传入相同参数问题
* 存储的数据,使用HashCode方法计算哈希值,
* 再通过哈希值和一个表达式,计算在数组中的存放位置,
* 当同一位置存在不同数值时,以链式方法连接。
* 数组+链接=哈希表*/
hsp.add(new Person(1,"1"));
hsp.add(new Person(1,"1"));
System.out.println(hsp);
hs.add(2);
hs.add(1);
hs.add(2);
System.out.println(hs.size());
System.out.println(hs);
Iterator<Integer> it = hs.iterator();
while (it.hasNext()){//唯一、无序
System.out.println(it.next());
}
}
}