集合和数组关系?
1) 集合是一种容器,可以存储多个数据.
2) 数组的长度是固定的,集合的长度是可变的.
3) 集合中存储的元素必须为引用类型数据,初始值为NULL
ArrayList集合类
ArrayList<E>集合:大小可变数组的实现
<E>:是一种特殊的数据类型,泛型(泛型,用来将数据类型,作为参数进行传递.)
在出现 E 的地方我们使用引用数据类型替换即可
举例:ArrayList<String>,ArrayList<Student>
构造方法: ArrayList()
成员方法:
l public booleanadd(E e):添加元素
l public voidadd(int index,E element):在指定的索引处添加元素
集合元素增删改查举例:
import java.util.ArrayList;
publicclass demo_11 {
publicstaticvoid main(String[] args) {
ArrayList<String>list = new ArrayList<String>();
// 添加元素:
list.add("hello");// 添加helloworld
list.add("world");
// 获取元素
list.get(0); // 获取第1个元素
// 集合的长度(元素个数)
list.size(); // 获取元素个数
// 删除元素
list.remove(1);// 删除第二个元素world
// 修改元素
list.set(0, "modify"); // 将hello改为modify;
System.out.println(list); // 输出结果为modify
//遍历获取每一个元素最标准的用法
for(inti=0;i<list.size();i++){
String s =list.get(i);
System.out.println(s);
}
}
}
集合元素功能方法:
1) 判断比较
s1.equals(s2) 比较字符串的内容是否相同
s1equalsIgnoreCase(String s2):比较字符串的内容是否相同,忽略大小写
s1 startsWith(Stringstr):判断字符串对象是否以指定的 str 开头
s1 endsWith(String str):判断字符串对象是否以指定的 str 结尾
获取功能方法
int length():获取字符串的长度,其实也就是字符个数
char charAt(int index):获取指定索引处的字符
int indexOf(String str):获取 str 在字符串对象中第一次出现的索引,没有返回-1
String substring(int start):从 start 开始截取字符串到字符串结尾
String substring(int start,intend):从 start 开始,到 end 结束截取字符串;包括 start,不包括 end
转换功能方法
char[] toCharArray():把字符串转换为字符数组
String s = "abcde";//定义一个字符串
char[] chs = s.toCharArray(); //字符串转换为字符数组
System.out.println(chs[2]);
String toLowerCase():把字符串转换为小写字符串
String toUpperCase():把字符串转换为大写字符串
String[] split(String str)按照指定符号分割字符串
Iterator迭代器
l 集合的iterator方法,所以单列集合实现类均有该方法
l iterator方法的返回值类型Iterator接口类型
l Iterator接口的两个方法:hasNext与next方法
注意:在使用迭代过程中不要为集合添加/删除数据,防止并发异常.
三种方法遍历: 普通for 循环,迭代器,以及加强for循环遍历
泛型
1. 含有泛型的类:
1) 定义格式:修饰符 class 类名<代表泛型的变量> { }
2) 使用格式:创建对象时,确定泛型的类型
2. 含有泛型的方法:
1) 定义格式:修饰符 <代表泛型的变量> 返回值类型方法名(参数){ }
2) 使用格式:调用方法时,确定泛型的类型
3. 含有泛型的接口:
1) 定义格式:修饰符 interface接口名<代表泛型的变量> { }
使用格式:
2) 定义类时确定泛型的类型
3) 始终不确定泛型的类型,直到创建对象时,确定泛型的类型
使用泛型的好处
l 将运行时期的ClassCastException,转移到了编译时期变成了编译失败
l 避免了类型强转的麻烦
ArrayList 不是唯一的集合:
ü TreeSet 以有序状态保持并可以防止重复
ü HashMap 可以成对的name/value来保存与取出
ü LinkedList 针对经常插入或者删除元素所设计的高效率集合
ü HashSet 防止重复的集合,可以快速找寻相符的元素.
ü LinkedHashMap可以记住元素插入顺序,也可以设定成依照上次元素存储的先后顺序