首页 > 其他分享 >stack、vector的使用和特点

stack、vector的使用和特点

时间:2023-06-15 23:01:13浏览次数:39  
标签:Vector 元素 list System 特点 vector println stack out

Stack的方法

stack是继承Vector

class Stack extends Vector

特点:栈模式----遍历时元素是先进后出

具体代码实现:

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);//3
		
		//判断集合是否不为空
		while(!stack.empty()){
			String pop = stack.pop();//删除元素,从栈顶开始删
			System.out.println(pop);//倒序输出
		}
		System.out.println("元素个数为:" + stack.size());//0
		
	}

Vector的使用

Vector的历史

Vector是元老级别的类,在JDK1.0开始就是先。JDK1.2开始才有的集合框架的概念 当时绝大部分程序员已经习惯使用Vector,为了更好地推广集合框架的概念,也出于保留Vector的 思想,Java的设计者让Vector多实现了List接口,才将其保留了下来。

创建一个数组,并添加元素

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

Vector具体的方法,

下面是具体代码实现:

public static void main(String[] args) {
		
		Vector<String> list = new Vector<>();//< >里面的就是泛型
		//泛型是什么,操作集合里面的就是什么类型
		
		//添加元素
		list.add("小红");
		list.add("小白");
		list.add("小文");
		list.add("小枭");
		
		//设置指定下标上的元素
		list.set(2, "王鸿枭");//将下标二的元素设置为王鸿枭
		
		
		//获取指定下标上的元素
		String str = list.get(2);
		System.out.println("获取指定下标上的元素:" + str);
		
		//获取元素个数
		int size = list.size();
		System.out.println("获取元素个数" + size);
		
		//将元素添加到指定位置
		list.add(3, "王博文");//添加元素会顶替掉之前元素的位置,将之前的元素往后移动一位
		
		//将newList1中所有的元素添加到list集合的末尾
		Vector<String> newList1 = new Vector<>();
		Collections.addAll(newList1, "aaa","bbb","cccc","ccc");//利用集合工具类(Collections)批量添加数据
		list.addAll(newList1);
		
		//将newList2中所有的元素添加到list集合的指定位置
		Vector<String> newList2 = new Vector<>();
		Collections.addAll(newList2, "xxx","yyy","zzz","zzz","小光","小明","小强","小华");//利用集合工具类(Collections)批量添加数据
		list.addAll(2, newList2);
		
		//清空集合
		//list.clear();
		
		
		System.out.println("判断集合是否包含某个元素:" + list.contains("王博文"));//true
		System.out.println("判断集合中是否包含某个子集合:" + list.containsAll(newList1));//true
		
		//true表示没有元素,false表示有元素
		System.out.println("判断集合中是否没有元素:" + list.isEmpty());//false
		
		
		System.out.println("获取元素的下标:" + list.indexOf("王博文"));//7
		
		
		System.out.println("获取元素在集合中第一次出现的下标:" + list.indexOf("zzz"));//4
		System.out.println("获取元素在集合中最后一次出现的下标:" + list.lastIndexOf("zzz"));//5
		
		list.remove(7);//根据下标删除元素
		list.remove("小白");//根据元素删除元素
		list.removeAll(newList1);//去除交集
		
		list.retainAll(newList2);//保留交集

		//从开始下标处(包含)截取到结束下标处(排他)的元素,返回新的集合
		List<String> subList = list.subList(1, 5);
		//将集合转换为数组
		Object[] array1 = subList.toArray();
		System.out.println(Arrays.toString(array1));
				
		//将集合转换为指定类型的数组
		String[] array2 = new String[subList.size()];
		subList.toArray(array2);
		System.out.println(Arrays.toString(array2));
		
		System.out.println("--------------------------");
	}

几种遍历方法

遍历集合 -- for循环
for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));	
		}
		
		System.out.println("--------------------------");
遍历集合 -- foreach
for (String element : list) {
			System.out.println(element);
		}
		
		System.out.println("--------------------------");
遍历集合 -- Iterator
Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()){//判断是否有可迭代的元素
			String next = iterator.next();//获取下一个元素
			System.out.println(next);
		}
		
		System.out.println("--------------------------");
遍历集合 -- listIterator
ListIterator<String> listIterator = list.listIterator();
		while(listIterator.hasNext()){
			String next = listIterator.next();
			System.out.println(next);
		}

标签:Vector,元素,list,System,特点,vector,println,stack,out
From: https://blog.51cto.com/u_16154651/6495635

相关文章

  • HashSet、LInkedHashSet的使用和特点
    HashSet的使用Java中的HashSet是CollectionsFramework中的一个类。它允许您使用哈希表在集合中存储多个值。哈希表借助哈希机制以无序的方式存储值。导入java.util.HashSet包后,以下是在Java中创建HashSet的语法:HashSet<data_type>name=newHashSet(capacity,lo......
  • cloudstack的重新封装--api调用
    使用python将cloudstack的多个功能进行重新封装形成api调用。#coding=utf-8#!/usr/bin/envpythonimportbase64importhmacimportjsonimportrequestsimportsysimporttimeimporturllibimportreimporthashlibimportloggingLOG=logging.getLogger(__name__......
  • leetcode735行星碰撞vector模拟栈操作
    vector的基本操作:vector<int>v;v.back();//获取尾部数据v.front();//获取首部数据v.push_back(3);//在尾部加入数据3v.pop_back();//弹出尾部数据首先只有前一个行星向右走,后一个行星向左走才可能相撞。也就是一正一负的组合使用一个变量aliva记录当前行星是否会被销毁,......
  • 深入探讨go语言开发的技术特点及其应用
    一、引言Go语言,又称Golang,是Google于2007年发布的一种静态类型、编译型语言。它融合了众多语言的优点,具有高效、安全、简洁等特点,迅速在开发领域崭露头角。本文将深入探讨go语言开发的技术特点及其应用,以期为相关领域的研究和实践提供参考。二、Go语言的技术特点简洁高效:Go语言的语......
  • C/C++——vector的基本操作总结
    标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:vector对象的定义和初始化vector对象的基本操作,主要包括添加元素,遍历等1、vector对象的定义和初始化在vector中主要有四种定义和初始化的......
  • 各种音视频协议技术及特点
    IP协议网络层协议,主要负责将数据包发送给最终的目标计算机,无状态、不可靠无连接协议无状态:无状态是指IP通信双方是不同步传输数据的状态信息。所有IP数据报的发送、传输和接收都是相互独立。无连接:无连接是指IP通信双方都不长久的维持对方的任何信息。上层协议每次发送数据的......
  • List 和 Map 区别;Arraylist 与 LinkedList 区别;ArrayList 与 Vector 区别;
    一、概述List是存储单列数据的集合,Map是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复,值允许有多个null;Map中存储的数据是没有顺序的,键不能重复,值是可以有重复的,key最多有一个null。二、明细 List1)可以允许重复的对象。2)可以插入多个null元素。3)是一......
  • WSL 2中安装VectorCAST
    “转载自维克多汽车技术(上海)有限公司,作者VectorChina”如需在Windows平台上搭建Linux开发和测试环境,常用的方法是使用VMware公司的虚拟化产品如VMwareWorkstation,或VMwarevSphere创建Linux虚拟机。为了精简传统虚拟机或双启动设置的开销,微软在Windows10平台中引入WSL1兼容层......
  • LiveVideoStackCon 2020上海 6月见
    自强不息,否极泰来。当你在2020年底总结这一年的得失时,LiveVideoStackCon可能保留了难忘的瞬间——我们等待他太久了。原本计划于4月举行的LiveVideoStackCon2020上海由于COVID-19不得不推迟到6月13-14日,LiveVideoStack团队全体远程办公,线下活动全面停摆,并被每周四/周日晚间线上公......
  • LiveVideoStackCon 北京站,好久不见
    LiveVideoStackCon2020北京站定在10月31以及11月1日。在6月的线上峰会也有提过,等到条件允许了,一定要和大家好好聚一聚。后来想了想,再没有比北京的秋天更好的时候了。6号线转14号线,金台路中转站步行距离不超过200米,T恤已经汗湿,微微贴住了前襟后背。 四川人苏辙说“伏中苦热焦皮骨......