一.集合类:专门用来存储java类的对象,数组长度可变
二.容器关系图
三.Coolection接口是构造集合框架的基础,声明了所有集合类的核心方法
四.实现list接口的类
4.1.1 ArrayList(数组列表),可以把ArrayList看做一个长度可变的数组
4.1.2 add方法-->添加元素
get方法-->获取元素
扫描二维码关注公众号,回复:
4263851 查看本文章
size()-->元素个数
4.1.3 ArrayList集合底层是用数组来保存元素的,增加或删除元素,会导致创建新的数组,效率低,不适合做大量操作
1 import java.util.ArrayList; 2 3 public class Test14 4 { 5 public static void main(String[] args) 6 { 7 //定义一个数组列表 8 ArrayList array=new ArrayList(); 9 //使用add方法添加三个字符串值进去 10 array.add("不要为了合群而合群"); 11 array.add("那纯碎是浪费你的青春"); 12 array.add("努力最大的意义我终于明白了"); 13 //使用get方法获取数组列表中的元素 14 String s=(String) array.get(0); 15 String s1=(String) array.get(1); 16 String s2=(String) array.get(2); 17 18 System.out.println(s); 19 System.out.println(s1); 20 System.out.println(s2); 21 System.out.println("********************"); 22 23 for(int i=0;i<array.size();i++) 24 { 25 System.out.println(array.get(i)); 26 } 27 System.out.println("**********************"); 28 29 System.out.println(array.get(0)); 30 System.out.println(array.get(1)); 31 System.out.println(array.get(2)); 32 System.out.println("*********************"); 33 34 //添加几个数字进去 35 array.add(540); 36 array.add(8); 37 System.out.println(array.indexOf(540));//元素540的下标位置 38 } 39 }
4.2.1 LInkedLIst(链表)集合
引用的方式来链接所有元素,插入新元素-->修改元素之间的这种引用关系(就是对象地址)
五.实现set接口的类
5.1 hashCode类:根据对象哈希值来确定元素在集合中的位置
5.2 hashCode无序不可重复
5.3 添加对象时,先调用对象hashCode方法确定存储位置,再调用equals方法确保没有该位置重复元素(简单的理解就是不能添加相同引用对象,因为地址相同)
1 import java.util.HashSet; 2 3 public class Test15 4 { 5 public static void main(String[] args) 6 { 7 HashSet set=new HashSet();//创建HashSet对象 8 set.add(new Person("张三"));//传入引用对象元素 9 set.add(new Person("李四")); 10 set.add(new Person("张三"));//元素值虽然相同,但比较的是地址 11 12 System.out.println(set);//调用toString方法,set是无序的,不可重复 13 14 System.out.println("*************************"); 15 16 set.clear();//清空元素 17 18 Person p=new Person("张三"); 19 System.out.println(set.add(p));//若成功插入显示true 20 System.out.println(set); 21 //set添加新的元素时,会检查set中的原有元素是否和插入新元素equals 22 //若有则不能添加,返回false 23 System.out.println(set.add(p)); 24 25 System.out.println("**************"); 26 set.clear(); 27 String s1="小冰晶"; 28 String s2="小冰晶"; 29 System.out.println("hash code:"+s1.equals(s2));//证明了set接口是不重复 30 System.out.println(set.add(s1)); 31 System.out.println(set); 32 System.out.println(set.add(s2));//s2和s1地址相等 33 } 34 } 35 36 class Person 37 { 38 String name;//姓名属性 39 //构造方法初始化值 40 public Person(String name) 41 { 42 this.name=name; 43 } 44 //重写toString方法 45 public String toString() 46 { 47 return name; 48 } 49 }
小哥哥我先回宿舍,后续待补充