(只需了解)
Collection集合(Set List Map)
Collection接口 是集合类的一个接口,定义了集合共有的方法
1.List接口 列表(数组)允许有重复的对象,有序
ArrayList 实现类 线性表结构 当频繁使用get时使用
LinkedList 实现类 内部使用的是链表结构 当频繁出现add,remove时使用
区别是存取数据的方式
使用:
List<类型名> 对象名 = new ArrayList<>();//(运用到了多态),数组的创建,集合对象里面只能保存同一种数据类型
对象名.add();//在数组末尾添加,加入索引值可在指定位置插入
对象名.get();//得到某个位置的数据
for循环和增强for循环或者Iterator遍历器//遍历这个数组,区别:for循环遍历时可以删除某个对象-remove(),这时数组剩下的数据位置将发生变化,有一部分数据无法遍历(可用i--来对应该情况)遍历器需要使用遍历器的remove方法进行删除
Iterator<类型名> iterator = 对象名.iterator();//获取对应的遍历器对象
//使用hashNext()判断是否还有下一个,next()获取下一个对象
while(iterator.hashNext()){
类型名 对象名 = iterator.next();
}
数据删除
removeIf(Predicate接口子类的对象);
//需要创建一个类实现Predicate接口的方法或者直接用匿名内部类
排序:sort
自己定义的对象必须实现Comparable接口和compareTo方法
或者使用匿名内部类Comparator
contains方法判断数组里是否包含某个元素,判断的不是对象内容,而是对象本身
indexOf获取某个对象的索引值
set改变某个值
clear清空
2.Set接口(集合)没有顺序且不能包含重复对象
HashSet类
TreeSet类
存储结构不一样
3.Map接口 映射 没有顺序
HashMap 管理键值对
ConcurrentMap 线程安全
LinkedHashMap
DIctionary key - value 键值对
Map<String,Person> map = new HashMap<>();
map.put("jack",new Person(3,3,"jack"));//添加一个键值对
map.size();//获取键值对的个数
map.isEmpty();//是否为空
map.containsKey("jack");是否包含某个key
map.containsValue(person对象);是否包含某个value
map.get("jack");//获取某个键对应的值Person
map.remove("jack");//删除键值对
map.replace("jack",new Person(3,4,"张三"));//替换
map.clear();//清空
Set<Map.Entry<String,Person>> entries = map.entrySet();//遍历,返回的是一个集合
for(Map.Entry<String,Person> entry : entries){
entry.getKey();
entry.getValue();
}
String字符串
String 不可变的字符串,没有直接操作字符串的增加,删除,改变的方法
StringBuilder可变字符串
创建字符串
//常量字符串
String country = "中国";
//使用构造方法创建
String country = new String("中国"); //该new对象在堆里 country在栈里定义 ”中国“在常量区
== 用来比较对象是否相同
equals()方法判断字符串内容是否相同
compareTo()获取并比较大小关系,返回1,0,-1
charAt(i)取字符串的某个字符
用length方法判断字符串是否为空,或者isEmpty()方法直接判断
startsWith方法判断是否以某个字符串开头,加一个索引值从i处开始查找
endsWith是否以某个字符串结尾
indexOf查找某个字符串的位置,加索引值在i处开始查找
subString获取子字符串加索引值从i处开始,到j处结束
replaceAll字符串替换(“要替换的字符串”,“替换的字符串”)不改变原字符串的内容
split字符串分割,得到的是字符串数组
trim去掉字符串末尾的空格
+字符串的拼接
自动装箱
int-Integer
char-Char
float-Float
StringBuilder
StringBuilder test = new StringBuilder();
append末尾增加字符串
insert插入字符串
test.append(" jack");
lastIndexOf查找某个字符串的位置
replace替换字符串
delete删除字符串