Java集合类存放在java.util包中,是一个用来存放对象的容器
- 集合只能存放对象. 比如你存一个int型数据1放入集合中, 其实他是自动转成了Integer类后存入的,Java中每一个中基本类型都有对象的引用类型
- 集合存放的是多个对象的引用类型, 对象本身还是在堆内存中
- 集合可以存放不同类型,不限数量的数据类型
Java集合的三大体系 Set ,List, Map
HashSet
package Study;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test2 {
public static void main(String[] args) {
Set wordSet = new HashSet();
//添加
wordSet.add(1);
wordSet.add("a");
//移除
wordSet.remove(1);
//判断是否存在 返回布尔值
wordSet.contains(1);
//清空
wordSet.clear();
wordSet.add(1);
wordSet.add(2);
wordSet.add(3);
wordSet.add(4);
//使用迭代器遍历集合
Iterator line = wordSet.iterator();
while (line.hasNext()){
System.out.println(line.next());
}
//使用加强for循环迭代
//设置一个Object类型的ling来把wordSet里面的每一个值取出来,赋值给line 完成遍历
for(Object line2 : wordSet){
System.out.println(line2);
}
//如果想让集合只能存同样类型的对象,使用泛型
Set<String> set1 = new HashSet<String>();
}
}
TreeSet
package Study;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Test3 {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<Integer>();
//自然排序
set.add(5);
set.add(2);
set.add(4);
set.add(3);
System.out.println(set);
// for (Object obj :set){
// System.out.println(obj);
// }
// Iterator<Integer> line = set.iterator();
// while (line.hasNext()){
// System.out.println(line.next());
// }
//定制排序
Person p1 = new Person();
p1.name = "张三";
p1.age = 23;
Person p2 = new Person("si",20);
Person p3 = new Person("wu",24);
Set<Person> set1 = new TreeSet<Person>(new Person());
set1.add(p1);
set1.add(p2);
set1.add(p3);
for (Person per : set1){
System.out.println(per.name+ per.age);
}
}
}
class Person implements Comparator<Person>{
int age;
String name;
public Person(){
}
public Person(String name,int age){
this.age = age;
this.name = name;
}
@Override
public int compare(Person o1, Person o2) {//按照年龄的正序排列
if (o1.age >o2.age){
return 1;
}else if (o1.age<o2.age){
return -1;
}else {
return 0;
}
}
}