首页 > 其他分享 >2023年6月10日,LinkedList,Vector,Stark,HashSet

2023年6月10日,LinkedList,Vector,Stark,HashSet

时间:2023-06-10 23:33:08浏览次数:44  
标签:10 LinkedList HashSet 元素 list add Vector String

2023年6月10日,LinkedList,Vector,Stark,HashSet_Stack

1. List

1. LinkedList

LinkedList的使用

package com.wz.linkedlist_class;

import java.util.LinkedList;

public class test01 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("AAA");
        list.add("BBB");
        list.add("CCC");
        list.add("DDD");
        for (String element:list
             ) {
            System.out.println(element);
        }
    }
}

LinkedList的队列模式,先进先出

package com.wz.linkedlist_class;

import java.util.LinkedList;

public class test02 {
    /**
     * LinkedList的队列模式.先进先出
     * @param args
     */
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("AAA");
        list.add("BBB");
        list.add("CCC");
        list.add("DDD");
        //判断队列是否为空
        while(!list.isEmpty()){
            //删除队列第一个元素
            String element = list.removeFirst();
            System.out.println(element);
        }
    }
}

LinkedList的栈模式,先进后出

package com.wz.linkedlist_class;

import java.util.LinkedList;

public class test03 {
    /**
     * LinkedList的栈模式.先进后出
     * @param args
     */
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("AAA");
        list.add("BBB");
        list.add("CCC");
        list.add("DDD");
        //判断队列是否为空
        while(!list.isEmpty()){
            //删除最后一个元素
            String element = list.removeLast();
            System.out.println(element);
        }
    }
}

LinkedList的其他方法

list.addFirst();//添加到第一个位置
list.addLast()//添加到最后一个位置
list.offerFirst();//添加到第一个位置
list.offerLast();//添加到最后一个位置
list.offer("");//添加到最后一个位置
list.element();//获取第一个元素
list.getFirst();//获取第一个元素
list.getLast();//获取最后一个元素
list.peek();//获取第一个元素
list.peekFirst();//获取第一个元素
list.peekLast();//获取最后一个元素
list.pool();//删除第一个元素
list.PoolFirst();//删除第一个元素
list.removeFirst();//删除第一个元素
list.poolLast();//删除最后一个元素
list.removeLast();//删除最后一个元素
list.removeFirstOccurrence("XXX");//删除第一次出现的元素;
list.removeLastOccurrence("XXX");//删除最后一次出现的元素;

2. Vector

Vector的使用

/**
	 * 知识点:了解Vector的历史
	 * 	Vector是元老级别的类,在JDK1.0开始就实现。JDK1.2开始才有的集合框架的概念,
	 * 	当时绝大部分程序员已经习惯使用Vector,为了更好的推广集合的概念,也出于保留Vector
	 * 	的思想,Java的设计者让Vector多实现了List接口,才将其保留下来
	 * 
	 * 需求:使用Vector老的方法
	 * 经验:
	 * 		1.命名喜欢使用Element
	 * 		2.现在很少人使用Vector集合
	 * 		3.面试官喜欢问Vector的底层原理
	 */
public static void main(String[] args) {
		
		Vector<String> v = new Vector<>();
		
		//添加元素
		v.addElement("aaa");
		v.addElement("bbb");
		v.addElement("ccc");
		v.addElement("ddd");
		v.addElement("eee");
		v.addElement("fff");
		v.addElement("ggg");
		
		v.removeElementAt(0);//根据下标删除元素
		v.removeElement("bbb");//根据元素删除元素
		
		//遍历元素
		Enumeration<String> elements = v.elements();
		while(elements.hasMoreElements()){//判断是否有可迭代的元素
			String nextElement = elements.nextElement();//返回下一个元素
			System.out.println(nextElement);
		}
	}

3. Stark

Stark的栈模式,先进后出

class Stack extends Vector

Vector类能调用的方法,Stack也有

public static void main(String[] args) {
		
		Stack<String> stack = new Stack<>();
		
		//将元素添加到栈顶
		stack.push("aaa");
		stack.push("bbb");
		stack.push("ccc");
		stack.push("ddd");
		
		//获取栈顶元素
		String peek = stack.peek();
		System.out.println("获取栈顶元素:" + peek);//ddd
		
		//获取元素距离栈顶的个数(从1开始)
		int search = stack.search("bbb");
		System.out.println("获取元素距离栈顶的个数:" + search);
		
		//判断集合是否不为空
		while(!stack.empty()){
			//删除栈顶元素并返回
			String pop = stack.pop();
			System.out.println(pop);
		}
		
		System.out.println("元素个数为:" + stack.size());//0
	}

2023年6月10日,LinkedList,Vector,Stark,HashSet_LinkedList_02

1. Set

1. HashSet

/**
	 * 知识点:理解HashSet的特点
	 * 特点:无序+去重
	 * 
	 * 理解无序:存入顺序和取出顺序不一致,无序不代表随机
	 * 
	 * 存入顺序的逻辑:
	 * 		1.获取元素的hash值 -- hashCode()
	 * 		2.利用hash值计算出在数组中的下标
	 * 		3.判断下标上是否有元素
	 * 			3.1 没有 - 就直接添加
	 * 			3.2  有 - 判断元素之间是否相同 -- ((hash) && (== || equals))
	 * 				3.2.1 相同 -- 不存,达到去重的效果
	 * 				3.2.2 不同 -- 添加元素,JDK1.7头插法、JDK1.8尾插法
	 * 
	 * 取出顺序的逻辑:
	 * 		遍历数组
	 */
package com.wz.HashSet_class;

import java.util.HashSet;

public class test02 {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("AAA");
        set.add("BBB");
        set.add("CCC");
        set.add("DDD");
        set.add("AAA");
        set.add("aaa");
        for (String element:set
             ) {
            System.out.println(element);
        }

    }
}

2023年6月10日,LinkedList,Vector,Stark,HashSet_Stack_03

2. LinkedHashSet

class LinkedHashSet extends HashSet

存入顺序的逻辑 - 和HashSet是一样的

取出顺序的逻辑:从双向链表的头部开始遍历

标签:10,LinkedList,HashSet,元素,list,add,Vector,String
From: https://blog.51cto.com/u_15098423/6456177

相关文章

  • 首次启动Kafka报Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memor
    首次启动Kafka报错如下:原因:内存不足,查看启动配置调小一些:......
  • 9.10 工厂设计模式
    demo1interfaceIFood{publicabstractvoideat();}classBreadimplementsIFood{publicvoideat(){System.out.println("吃面包~");}}classMilkimplementsIFood{publicvoideat(){System.out.println("喝......
  • 2023/6/10 学习笔记
    欧拉图欧拉图的定义欧拉回路:所有的边都经历一次不重复的回路欧拉通路:所有的边都经历一次不重复的路径欧拉图:具有欧拉回路的图半欧拉图:具有欧拉通路的图 连通图只有0个或者偶数个奇数出度点判别方法:1.无向图欧拉回路:(1)除去度为0的点外,其他的点相互连通(2)顶点度数......
  • 6.10学习总结
    JavaArrayList Java集合框架ArrayList类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList继承了AbstractList,并实现了List接口。ArrayList类位于java.util包中,使用前需要引入它,语法格式如下:importjava.u......
  • (2023.6.10)线程绑定到指定核上
    pthread_setaffinity_np与sched_setaffinity的区别:sched_setaffinity可在进程的线程中去修改亲和性写在启动脚本中是使用pthread_setaffinity_np、sched_setaffinity、还是tasklet?(https://www.cnblogs.com/x_wukong/p/5924298.html)c语言如何调用到系统命令reboot? 同时在......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意软件......
  • StarWind V2V Converter报错V2V convert to VMDK 'unrecoverable error' on win10
    解决方法:避免在源名称和目标名称中使用任何非ASCII符号修改文件名,不能使用特殊字符  VMwareVirtualDiskDevelopmentKitErrorVMwareVirtualDiskDevelopmentKitunrecoverableerror:(vthread-4)NOTIMPLEMENTEDd:/build/ob/bora-13861102/bora/lib/unicode/unic......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意......
  • SummerResearch_Log_20230610
    WorkingContent:1.目前要做的任务是将classifier_resnet18.py用的方法做一些改动,原来是训练一个被污染的数据集,然后用干净的测试集去测试正常数据的识别成功率和污染数据的攻击成功率。比如某种dog属于dog类,我现在找了个trigger(比如加了个黑方格到dog的图像上),并且把加了trigg......
  • 日记-20230610
    在昆明湖看到吃鱼的鸟,用晾衣杆钓到大鱼的女孩儿。不是这只,这只是前一天拍的,今天的没拍到......