集台: 存放引用数据类型的容器。主要的是增删改查。
ColLection: 集合,接口,继承了Iterable,里面有很多方法。
List: 接口,继承了CoLLectio. 有序,可以重复。
Set:也接口,继承了CoLLectio 无序,不重复
泛型:指的就是容器中元素的数据类型。
ArrayList:
add()添加
remove(): 只能删除一个,如果有重复的数据,删除第一个
get() :通过索引获取
set():
size():获取元素个数的
sort()升序
contains(Object o)底层是object数组。
如果底层的数组元素满了,就要扩容,扩容1.5倍。然后将元素添加到容器
链表LinkedList:
List 和 Deque 两个接口
特点:内存空间不连续。
底层是Node,分为3 部分前一部分数据后一部分
Deque: 队列,先进先出
Stack: 栈 : 先进后出
HashSet:实现了Set接口。
无序:没有索引
不重复:
add() :添加了重复元素,只显示一个
remove()删除
hashSet和hashtable 区别
hashSet线程不安全 效率高
Hashtable 线程安全,效率低
迭代器:
iterator
- hasNext 判断是否有内容
- next 有内容直接输出,否则报错
增强for 循环
实现了Iterable接口的都可以用
for(泛型数据美型集合名称){变量 :操作变量}
优点:简单明了
缺点:不能操作索引
HashMap:双列集台
put如果键存在就是修改,不存在就是添加。
get remove size keySet
工具美Collections
-sort
- reverse
-shuffle 随意
-min
-max
-addAlI
public class New01 {
public static void main(String[] args) {
ArrayList<Num> objects = new ArrayList<>();
objects.add(new Num("张三","1234567789012345678"));
System.out.println(objects);
}
}
package deom01;
public class Num {
private String name;
private String id;
public Num() {
}
public Num(String name, String section) {
this.name = name;
this.id = section;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String section) {
this.id = section;
}
@Override
public String toString() {
return "Num{" +
"name='" + name + '\'' +
", section='" + id + '\'' +
'}';
}
}
package deom01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.*;
public class New02 {
public static void main(String[] args) {
ArrayList<Num1> objects = new ArrayList<>();
ArrayList<Num1> object = new ArrayList<>();
objects.add(new Num1("张三","人事部"));
objects.add(new Num1("李四","人事部"));
object.add(new Num1("狗蛋","开发部"));
object.add(new Num1("李娜","开发部"));
object.add(new Num1("三喜","开发部"));
object.add(new Num1("e","开发部"));
object.add(new Num1("h","开发部"));
object.add(new Num1("k","开发部"));
objects.add(new Num1("f","人事部"));
objects.add(new Num1("g","人事部"));
System.out.println("人事部有"+objects.size());
System.out.println("开发部有"+object.size());
System.out.println(object);
System.out.println(objects);
}
}
package deom01;
public class Num1 {
private String name;
private String section;
public Num1() {
}
public Num1(String name, String section) {
this.name = name;
this.section = section;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
@Override
public String toString() {
return "Num1{" +
"name='" + name + '\'' +
", section='" + section + '\'' +
'}';
}
}
package deom01;
import java.util.ArrayList;
import java.util.Collections;
public class New03 {
public static void main(String[] args) {
ArrayList<Integer> objects = new ArrayList<>();
Collections.addAll(objects,21,36,54,32,67);
System.out.println(objects);
/*Integer min = Collections.min(objects);
objects.remove(min);
System.out.println(objects);
Integer min1 = Collections.min(objects);
objects.remove(min1);
System.out.println(objects);*/
for (int i = objects.size()-1; i >=0 ; i--) {
Integer num=objects.get(i);
if(num > 30){
objects.remove(num);
}
}
System.out.println(objects);
}
}