1.集合概述
2.集合的分类,集合可以分为Set ,List, Msp三大种类:
3.下面依次介绍一下各个集合:
Set集合:
HashSet:
HashSet是set集合的典型实现类,大多时候使用set集合,都是使用这一实现类。它具有如下特点:不能保证元素的排列顺序,不可重复,不是线程安全的,可以使用null. 当HashSet集合存入一个元素时,HashSet会调用HashCode()方法,获得该元素的哈希码,然后根据此码,确定该元素在HashSet表中的位置。
HashSet的基本应用如下:
public static void main(String[] args) { Set set = new HashSet();//集合初始化 set.add(1);//添加元素 set.add("a"); System.out.println(set); set.remove(1);//移除元素 System.out.println(set); set.clear();//清空集合 set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); //遍历集合 Iterator it = set.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //for each迭代集合 for(Object obj : set) {//将set里的所有元素赋给obj,然后输出 System.out.println(obj); } //如果想要使集合只存储相同类型的数据,则需要用到泛型 Set<String> set1 = new HashSet<String>(); set1.add("adadad"); //set1.add(1);//错误 }HashSet
TreeSet集合:
TreeSet可以确保元素处于排列状态。TreeSet支持两种排序方式自然排序,定制排序。默认为自然排序。
TreeSet基本用法如下:
public class Test5 { public static void main(String[] args) { //使用TreeSet时必须保证使用的是同样类型的对象(因为要比较大小进行排序) Set<Integer> set = new TreeSet<Integer>(); set.add(5); set.add(2); set.add(4); set.add(1); set.add(3); System.out.println(set);//treeset从小到大自然排序 set.remove(1); set.contains(3); //set.clear(); //遍历集合 Iterator<Integer> it = set.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //for each迭代集合 for(Object obj : set) {//将set里的所有元素赋给obj,然后输出 System.out.println(obj); } Person p1 = new Person("zhangsan",16); Person p2 = new Person("lisi",23); Person p3 = new Person("wangwu",15); Person p4 = new Person("zhaoliu",34); Person p5 = new Person("sunqi",19); Set<Person> set1 = new TreeSet<Person>(new Person()); set1.add(p1); set1.add(p2); set1.add(p3); set1.add(p4); set1.add(p5); //for each迭代集合 for(Person obj1 : set1) {//将set里的所有元素赋给obj,然后输出 System.out.println(obj1.name+" "+obj1.age); } } } //treeset定制排序 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 arg0, Person arg1) {//正序 if(arg0.age>arg1.age) { return 1; }else if(arg0.age<arg1.age){ return -1; }else { return 0; } } }TreeSet基本用法
List集合:
list集合基本用法:
public static void main(String[] args) { //List默认按元素的添加顺序设置索引,且可以通过索引访问指定位置的元素 List<String> list = new ArrayList<String>(); list.add("a");//下标索引为0 list.add("b");//下标索引为1 list.add("c");//下标索引为2 list.add("d");//下标索引为3 list.add("d"); System.out.println(list); System.out.println(list.get(2));//通过索引获取指定元素 list.add(1, "abc"); System.out.println(list);//在指定位置添加元素 List<String> l = new ArrayList<String>(); l.add("aaa"); l.add("bbb"); l.add("ccc"); list.addAll(2, l);//在指定位置插入集合 System.out.println(list); System.out.println(list.indexOf("abc"));//获取元素第一次出现时的下标索引 list.set(0, "b"); System.out.println(list);//根据下标索引修改指定元素 List<String> sublist = list.subList(2, 4);//跟据下标索引获取一段元素的集合,包括头索引,不包括尾索引 System.out.println(sublist); }ArrayList基本用法
Map集合:
map保存具有映射关系的数据,因此Map集合里保存着两组值,一组用于保存key一组用于保存value值,其中Map和Key都可以是任何引用类型的数据。map中的Key不允许重复。
Map接口主要通过HashMap类实现,HashMap的主要用法如下:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<String,Integer>(); map.put("1",6);//添加数据 map.put("2",2); map.put("3",2); System.out.println(map); System.out.println(map.get("1"));//根据key取值 map.remove("2");//根据key移除值 System.out.println(map); System.out.println(map.size());//输出map的长度 System.out.println(map.containsKey("1")); Set<String> keys = map.keySet();//获取集合的所有的key值 map.values();//获取集合的所有value值 //遍历map集合,通过map.KeySet() for(String key: keys) { System.out.println(key +" "+map.get(key)); } //遍历集合,通过map.entrySet(); Set<Entry<String,Integer>> entrys = map.entrySet(); for(Entry<String,Integer> en: entrys) { System.out.println(en.getKey() +" "+en.getValue()); } }HashMap基本用法