目录
一、集合类概述
二、Collection接口
package 集合类;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class COLLECTION {
public static void main(String[] args) {
Collection c=new ArrayList();
System.out.println("集合是不是空的:"+c.isEmpty()+"集合的长度"+c.size());
c.add("你好");
c.add(3.14);
c.add(new Object());
System.out.println("集合是不是空的:"+c.isEmpty()+"集合的长度"+c.size());
c.remove(3.14);
System.out.println("集合是不是空的:"+c.isEmpty()+"集合的长度"+c.size());
Iterator it=c.iterator();//迭代器
while(it.hasNext()) {
Object o=it.hasNext();
System.out.println(o);
}
// TODO 自动生成的方法存根
}
}
三、List接口
package 集合类;
import java.util.ArrayList;
import java.util.List;
public class LIST {
public static void main(String[] args) {
List list=new ArrayList();
list.add("清明时节雨纷纷");
list.add("路上行人欲断魂");
list.add("借问酒家何处有");
list.add("牧童遥指杏花村");
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
// System.out.println(list.get(2));
// System.out.println(list.get(0));
System.out.println();
list.remove(1);
// System.out.println(list.get(2));
// System.out.println(list.get(0));
System.out.println(list.size());
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
System.out.println();
list.add(1,"插入一句");
list.set(2, "我改一下这句话");
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
// TODO 自动生成的方法存根
}
}
四、set集合
1、TreeSet(树状集合)
package TreeSet集合;
public class person implements Comparable{
int id;
int age;
String name;
@Override
public int compareTo(Object o) {
person p;
if(o instanceof person) {
p=(person) o;
}else {
return -1;//传入参数比我本身要小
}
// int diff=this.id-p.id;//按照ID排序
int diff=this.age-p.age;//按照age排序
if(diff!=0) {
diff=diff/Math.abs(diff);//差值除以本身绝对值,可以得到+1或-1的值
}
// TODO 自动生成的方法存根
return diff;
}
public person(int id, int age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "person [id=" + id + ", age=" + age + ", name=" + name + "]";
}
}
package TreeSet集合;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class treeset {
public static void main(String[] args) {
Set set=new TreeSet();
person p1=new person(1,18,"小明");
person p2=new person(2,5,"大壮");
person p3=new person(3,20,"阿强");
set.add(p1);
set.add(p2);
set.add(p3);
// set.add(null);//treeset 不能添加nall值
System.out.println(set.size());
set.add(p3);
System.out.println(set.size());//重复的元素不会添加到集合中
Iterator it=set.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
// TODO 自动生成的方法存根
}
}
2、HashSet
package HashSet集合;
public class person {
int id;
String name;
public person(int id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "person [id=" + id + ", name=" + name + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
person other = (person) obj;
if (id != other.id)
return false;
return true;
}
}
package HashSet集合;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HASHSET {
public static void main(String[] args) {
Set set=new HashSet();
person p1=new person(1, "小明");
person p2=new person(2, "大壮");
person p3=new person(1, "阿强" );
person p4=new person(2, "大壮");
set.add(p1);
set.add(p2);
set.add(p3);
p2.id=5;
p2.name="123";
set.add(p2);//虽然hash值相同,因为集合中的对象已经与新对象不同了
set.add(p4);//
//set.remove(p2);//id为5的hashcode
//尽量不要在添加到集合之后再进行改变
System.out.println("集合的长度"+set.size());//序号为依据
set.add(null);
System.out.println("集合的长度"+set.size());//可添加空值
set.add(null);
System.out.println("集合的长度"+set.size());//空值只可以添加一次
Iterator it=set.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
// TODO 自动生成的方法存根
}
}
五、Map 接口
package 集合类;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Map {
public static void main(String[] args) {
HashMap map=new HashMap();
map.put("String", "这是一个字符串");
map.put("object", new Object());
map.put("int", 1234);
map.put("数字", 1234);
map.put(1, "1");
map.put(new Object(), new Object());
map.put(null, null);
System.out.println("map中的元素个数"+map.size());//可存入空值,可存入相同
Set set=map.keySet();
// Iterator it=set.iterator();
// while(it.hasNext()) {
// System.out.println(it.next());
// }//键
Iterator it=set.iterator();
while(it.hasNext()) {
Object obj=it.next();
System.out.println("key="+obj+" value:"+map.get(obj));
}
System.out.println();
System.out.println(map.get("String"));
System.out.println(map.get(null));
// TODO 自动生成的方法存根
}
}