Java数据结构
java 集合框架
package test;
import java.util.ArrayList;
public class aryList {
// ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
//ArrayList 继承了 AbstractList ,并实现了 List 接口。
// 初始化 ArrayList<E> objectName = new ArrayList<>();
// E->> 数据类型 用于指定objectName数据类型 只能为引用数据类型
// 数据引用类型 boolean byte short int long float double char
// objectName 对象名称
// private 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
// 添加元素
private void add(String s) {
ArrayList<String> addStr = new ArrayList<String>();
addStr.add(s);
System.out.println(addStr);
}
// 访问元素
// 数组访问顺序从0开始
private void sel(String s) {
ArrayList<String> addStr = new ArrayList<String>();
addStr.add(s);
System.out.println(addStr.get(0));
}
// 修改元素
private void upd(String s) {
ArrayList<String> addStr = new ArrayList<String>();
addStr.add(s);
addStr.set(0, "write");
System.out.println(addStr);
}
// 删除元素
private void del(String s) {
ArrayList<String> addStr = new ArrayList<String>();
addStr.add(s);
addStr.remove(0);
System.out.println(addStr);
}
// 计算大小 需要使用size方法
private void con(String s) {
ArrayList<String> addStr = new ArrayList<String>();
addStr.add(s);
System.out.println(addStr.size());
}
// 迭代数组列表
// private void dd(String s) {
// ArrayList<String> addStr = new ArrayList<String>();
// addStr.add(s);
// for (int i = 0; i <= addStr.size(); i++) {
// System.out.println(addStr.get(i));
// }
// }
public static void main(String[] args) {
aryList addLt = new aryList();
addLt.add("block");
addLt.upd("block");
addLt.sel("block");
addLt.del("block");
}
}
-----LinkedList---------
package test;
import java.util.LinkedList;
public class linkedList {
// ArrayList与LinkedList使用场景区别
// ArrayList :
// 频繁访问列表中的某一个元素。
// 只需要在列表末尾进行添加和删除元素操作。
// LinkedList :
// 你需要通过循环迭代来访问列表中的某些元素。
// 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
/*LinkedList 继承了 AbstractSequentialList 类。
LinkedList 实现了 Queue 接口,可作为队列使用。
LinkedList 实现了 List 接口,可进行列表的相关操作。
LinkedList 实现了 Deque 接口,可作为队列使用。
LinkedList 实现了 Cloneable 接口,可实现克隆。
LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。*/
// 添加数据
private void linkList(String str) {
LinkedList<String> linkedListAdd = new LinkedList<String>();
linkedListAdd.add(str);
System.out.println(linkedListAdd);
}
// 在开头添加数据
private void fAdd(String s) {
LinkedList<String> frAdd = new LinkedList<String>();
frAdd.addFirst(s);
System.out.println(frAdd);
}
// 在结尾添加数据
private void jwAdd(String s) {
LinkedList<String> jwAdd = new LinkedList<String>();
jwAdd.addLast(s);
System.out.println(jwAdd);
}
// 移除首位数据
private void rvData(String s) {
LinkedList<String> jwAdd = new LinkedList<String>();
jwAdd.addLast(s);
jwAdd.removeFirst();
jwAdd.addLast(s);
jwAdd.removeFirst();
System.out.println(jwAdd);
}
// 获取首位数据
private void getData(String s) {
LinkedList<String> jwAdd = new LinkedList<String>();
jwAdd.addLast(s);
jwAdd.getFirst();
jwAdd.addLast(s);
jwAdd.getLast();
System.out.println(jwAdd);
}
public static void main(String[] args) {
linkedList lk = new linkedList();
lk.linkList("google");
lk.getData("gg");
lk.jwAdd("dds");
lk.rvData("sss");
lk.fAdd("sd");
}
}
------HashSet---------
package test;
import java.util.HashSet;
public class hashSet {
// 不允许有重复元素的集合,允许存在null值, 无序集合
// hashset的元素是对象
private void hsSet(String s) {
HashSet<String> hsSet = new HashSet<String>();
// 数据添加 重复添加的时候集合中只有一个数据
hsSet.add(s);
System.out.println(hsSet);
// 判断元素是否存在
System.out.println(hsSet.contains(s));
// 删除元素
hsSet.remove(s);
System.out.println(hsSet);
// 删除所有
hsSet.clear();
System.out.println(hsSet);
}
public static void main(String[] args){
hashSet hs = new hashSet();
hs.hsSet("supper");
}
}
``