List和Set的顶层接口都是CollectionList集合
ArrayList就是一个的数组
remove(Object o) 移除此列表中首次出现的指定元素(如果存在)。 |
size() 返回此列表中的元素数 |
LinkedList基于链表的存储结构
contains(Object o) 如果此列表包含指定元素,则返回 true。 |
remove(Object o) 从此列表中移除首次出现的指定元素(如果存在)。 |
特点:
1.ArrayList查询快、增删慢
2.LinkedList查询慢、增删快
List集合是有序的,且元素可以重复
如图展示:
代码展示:
Set集合
Set集合它所存储的元素是不可重复的,并且元素都是无序的
Set集合不能直接获取某个元素,只能通过迭代器遍历元素。
iterator() 返回在此 set 中的元素上进行迭代的迭代器。 |
通俗的理解为小学生的书包,直接把元素扔进去,是没有任何顺序的,所以元素不能重复。
如图所示:
代码展示:
map集合
基于键值对形式存储的数据结构在Map中key是不允许重复的,value值是可以重复。
Map会把所有的key存放一个set集合中。
类型参数:
K
- 此映射所维护的键的类型
V
- 映射值的类型
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
常用类:
containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。 | |
boolean | containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。 |
Set<Map.Entry<K,V>> | entrySet() 返回此映射中包含的映射关系的 Set 视图。 |
代码展示:
String类
字符串的不变性:String类中定义了常量字符数组一旦赋值这个字符数组的值就不能被更改
字符串修改值的时候不是修改字符串的本身而是重新修改字符串的地址放入到栈内存中
经常需要变化的字符串建er定义议使用StringBuffer定义
String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);
下面给出了一些如何使用字符串的更多示例:
System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2);
StringBuffer字符:
线程安全的可变字符序列。线程安全 一个类似于 String
的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
常用类:
codePointAt(int index) 返回指定索引处的字符(统一代码点)。 | |
int | codePointBefore(int index) 返回指定索引前的字符(统一代码点)。 |
int | codePointCount(int beginIndex, int endIndex) 返回此序列指定文本范围内的统一代码点。 |
StringBuilder字符:
一个可变的字符序列没有线程安全功能 此类提供一个与 StringBuffer
兼容的 API,但不保证同步。该类被设计用作 StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时(这种情况很普遍)如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer
要快。
append(CharSequence s, int start, int end) 将指定 CharSequence 的子序列追加到此序列。 | |
StringBuilder | append(double d) 将 double 参数的字符串表示形式追加到此序列。 |
StringBuilder | append(float f) 将 float 参数的字符串表示形式追加到此序列。 |
StringBuilder | append(int i) 将 int 参数的字符串表示形式追加到此序列。 |
StringBuilder | append(long lng) 将 long 参数的字符串表示形式追加到此序列。 |
StringBuilder | append(Object obj) 追加 Object 参数的字符串表示形式。 |
StringBuilder | append(String str) 将指定的字符串追加到此字符序列。 |
StringBuilder | append(StringBuffer sb) 将指定的 StringBuffer 追加到此序列 |