java学习-20220329

Java数据结构

/* Java数据结构
* 枚举 --> 接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素
*   测试枚举中是否包含多个元素 hasMoreElements( )
*   如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。nextElement( )
* 位集合 --> 位集合类实现了一组可以单独设置和清除的位或标志
* 向量 --> 向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化
* 栈 --> 实现了一个后进先出(LIFO)的数据结构
* 字典 -->
* 哈希表 --> Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段
* 属性 --> Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串
* 集合框架
* 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
*   接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象
*   实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
*   算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
* */

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");
    }
}


``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值