老紫竹JAVA提高教程(8)-认识List列表之Vector

python cartopy绘制扇形区域图/cartopy绘制北极部分区域 实际上,这个问题原因还是由于投影转换的问题,在set_extend时,绘制的上下边界仍然是方形、未被正确投影的边界,与我们的set_boundary存在冲突,最根本的原因还是在于cartopy对于投影计算的一些缺陷。另外我们需要指出的是:**该方法不适用于极地投影,即NorthPolarStereo,由于NorthPolarStereo本身投影特性只需一个参数,本身并不适合。我们绘制极地投影时,同样也是使用set_boundary绘制圆形边界,那么当我们想要绘制扇形时,可以通过。请根据喜好自行选择, 阅读详情
 
Vector和ArrayList的最大区别就是Vector的主要集合方法是线程同步的。
  1. package collection.lession8;
  2. import java.util.Arrays;
  3. import java.util.Collection;
  4. import java.util.Enumeration;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Vector;
  8. /**
  9.  * 老紫竹JAVA提高教程(8)-认识List列表之Vector.<br>
  10.  * Vector和ArrayList的最大区别就是<br>
  11.  * Vector的主要集合方法是线程同步的.<br>
  12.  * <br>
  13.  * 注意:如下代码绝大部分和ArrayList代码完全相同<br>
  14.  * 只是把ArrayList替换为Vector
  15.  * 
  16.  * @author 老紫竹 JAVA世纪网(java2000.net)
  17.  * 
  18.  */
  19. public class Lession8 {
  20.   public static void main(String[] args) {
  21.     testNormal();
  22.     testSpecial();
  23.     // 一个最常见的错误
  24.     testForProblem();
  25.     // 测试Vector的特殊方法
  26.     testForVector();
  27.   }
  28.   public static void testForVector() {
  29.     // 可以指定每次增加的容量尺寸
  30.     // 初始化为100个,每次增加12个
  31.     Vector v1 = new Vector(12, 12);
  32.     v1.add(1);
  33.     v1.add(2.34);
  34.     v1.add("abc");
  35.     showList(v1);
  36.     // 显示容量
  37.     System.out.println("capicity=" + v1.capacity());
  38.     // 可以复制数据到数组
  39.     Object[] anArray = new Object[v1.size()];
  40.     v1.copyInto(anArray);
  41.     System.out.println(Arrays.toString(anArray));
  42.     // 可以设置尺寸
  43.     // 采用null进行位置填充
  44.     System.out.println("size=" + v1.size());
  45.     v1.setSize(16);
  46.     System.out.println("size=" + v1.size());
  47.     showList(v1);
  48.     // 显示容量
  49.     // 可以看到容量已经增加了
  50.     System.out.println("capicity=" + v1.capacity());
  51.     // 获得枚举
  52.     Enumeration en = v1.elements();
  53.     // 下面是一些相关的操作,我就不一个一个的写了
  54.     // 
  55.     // public synchronized E firstElement();
  56.     // public synchronized E lastElement();
  57.     // public synchronized void setElementAt(E obj, int index) ;
  58.     // public synchronized void removeElementAt(int index);
  59.     // public synchronized void insertElementAt(E obj, int index);
  60.     // public synchronized void addElement(E obj);
  61.     // public synchronized boolean removeElement(Object obj);
  62.     // public synchronized void removeAllElements();
  63.   }
  64.   public static void testNormal() {
  65.     // -------------------------------------------------------
  66.     // 声明一个列表
  67.     // 允许放入任何数据
  68.     // -------------------------------------------------------
  69.     Vector list = new Vector();
  70.     // 放入整数
  71.     // 当然你用 new Integer(1)也可以
  72.     list.add(1);
  73.     // 放入字符串
  74.     list.add("abc");
  75.     // 放入浮点数
  76.     list.add(new Float(1.11));
  77.     // add会将数据保存到列表的尾部
  78.     showList(list); // 1, abc, 1.11]
  79.     // 下面我们在列表的头部增加数据
  80.     list.add(0, 2);
  81.     list.add(0, "bcd");
  82.     list.add(0, new Double(2.34));
  83.     // 列表可以指定插入的位置
  84.     // 0 是头部第一个位置,所以数据都逐个放到最前面了
  85.     showList(list); // [2.34, bcd, 2, 1, abc, 1.11]
  86.     // 下面我们插入到我们希望的任何位置
  87.     // 当然不能越界,(0 到 list.size()-1)范围内才可以
  88.     list.add(1, 3);
  89.     list.add(4, "xyz");
  90.     // 数据被放到了正确的位置
  91.     showList(list); // [2.34, 3, bcd, 2, xyz, 1, abc, 1.11]
  92.     // -------------------------------------------------------
  93.     // 我们有了数据,我们来测试读取数据
  94.     // -------------------------------------------------------
  95.     // 我们可以通过指定索引的位置,来拿到我们希望的数据
  96.     System.out.println(list.get(0)); // 2.34
  97.     System.out.println(list.get(4)); // xyz
  98.     // -------------------------------------------------------
  99.     // 测试是否存在某个数据
  100.     // -------------------------------------------------------
  101.     System.out.println(list.contains("xyz")); // true
  102.     // 测试是否包含一组数据
  103.     Collection c = new Vector();
  104.     c.add(1);
  105.     c.add(2);
  106.     System.out.println(list.containsAll(c)); // true
  107.     c.add(3);
  108.     c.add(4);
  109.     // containsAll_1234=false
  110.     System.out.println(list.containsAll(c)); // false
  111.     // -------------------------------------------------------
  112.     // 查找某个数据所在的索引位置
  113.     // 如果不存在,返回-1
  114.     // -------------------------------------------------------
  115.     System.out.println(list.indexOf(3)); // 1
  116.     System.out.println(list.indexOf("xyz")); // 4
  117.     System.out.println(list.indexOf("abcd")); // -1
  118.     // -------------------------------------------------------
  119.     // 测试删除数据
  120.     // 请注意,
  121.     // 如果你使用整数(int)数字,则默认调用的是remove(int index);
  122.     // 如果你用 long,则会调用 remove(Object obj);
  123.     // 所以如果你要删除整数,请使用 remove(new Integer(int));
  124.     // -------------------------------------------------------
  125.     // 删除索引为1的数据
  126.     list.remove(1);
  127.     // 索引为1的数据被干掉了
  128.     showList(list); // [2.34, bcd, 2, xyz, 1, abc, 1.11]
  129.     // 删除数字1 和字符串 abc
  130.     list.remove(new Integer(1));
  131.     list.remove("xyz");
  132.     showList(list); // [2.34, bcd, 2, abc, 1.11]
  133.     // -------------------------------------------------------
  134.     // 迭代器的使用
  135.     // -------------------------------------------------------
  136.     Iterator it = list.iterator();
  137.     while (it.hasNext()) {
  138.       System.out.print(it.next() + " "); // 2.34 bcd 2 abc 1.11
  139.     }
  140.     System.out.println();
  141.     // -------------------------------------------------------
  142.     // 转化为数组
  143.     // -------------------------------------------------------
  144.     Object[] objs = list.toArray();
  145.     for (Object obj : objs) {
  146.       System.out.print(obj + " "); // 2.34 bcd 2 abc 1.11
  147.     }
  148.     System.out.println();
  149.   }
  150.   public static void testSpecial() {
  151.     // -------------------------------------------------------
  152.     // 测试重复和null
  153.     // -------------------------------------------------------
  154.     //
  155.     List<Integer> list = new Vector<Integer>();
  156.     list.add(123);
  157.     list.add(456);
  158.     list.add(123);
  159.     list.add(456);
  160.     // 数据允许重复
  161.     showList(list); // [123, 456, 123, 456]
  162.     list.add(null);
  163.     list.add(789);
  164.     list.add(null);
  165.     list.add(999);
  166.     // 允许放入多个null
  167.     showList(list); // [123, 456, 123, 456, null, 789, null, 999]
  168.     // -------------------------------------------------------
  169.     // 测试一下查找最后一次出现的位置
  170.     // -------------------------------------------------------
  171.     System.out.println(list.indexOf(123)); // 0
  172.     System.out.println(list.lastIndexOf(123)); // 2
  173.     // -------------------------------------------------------
  174.     // 转化为数组
  175.     // 记得要转化为Inerger.
  176.     // -------------------------------------------------------
  177.     Integer[] nums = (Integer[]) list.toArray(new Integer[0]);
  178.     // 注意数据里面有null,所以循环变量不要用int 要用Integer
  179.     for (Integer num : nums) {
  180.       System.out.print(num + " "); // 123 456 123 456 null 789 null 999
  181.     }
  182.     System.out.println();
  183.   }
  184.   public static void testForProblem() {
  185.     // 一些朋友在向循环里向列表增加对象的时候
  186.     // 经常忘记初始化,造成最终加入的都是同一个对象
  187.     List<MyObject2> list = new Vector<MyObject2>();
  188.     MyObject2 obj = new MyObject2();
  189.     for (int i = 1; i <= 5; i++) {
  190.       obj.setName("Name" + i);
  191.       list.add(obj);
  192.     }
  193.     // 里面的数据都是最后一个
  194.     showList(list); // [Name5, Name5, Name5, Name5, Name5]
  195.     // 正确的做法
  196.     List<MyObject2> list2 = new Vector<MyObject2>();
  197.     MyObject2 obj2 = null;
  198.     for (int i = 1; i <= 5; i++) {
  199.       obj2 = new MyObject2();
  200.       obj2.setName("Name" + i);
  201.       list2.add(obj2);
  202.     }
  203.     // 里面的数据都是最后一个
  204.     showList(list2); // [Name1, Name2, Name3, Name4, Name5]
  205.   }
  206.   /**
  207.    * 显示List里面的数据。
  208.    * 
  209.    * @param list
  210.    */
  211.   private static void showList(List list) {
  212.     System.out.println(Arrays.toString(list.toArray()));
  213.   }
  214. }
  215. class MyObject2 {
  216.   private String name;
  217.   public String getName() {
  218.     return name;
  219.   }
  220.   public void setName(String name) {
  221.     this.name = name;
  222.   }
  223.   /**
  224.    * 重写toString方法,输出name
  225.    */
  226.   public String toString() {
  227.     return name;
  228.   }
  229. }

计算机网络技术研究方向有哪些创新点 计算机网络技术方向的创新点众多,这些创新不仅推动了网络技术的不断发展和完善,还为用户提供了更高效、更安全、更便捷的网络服务。- 边缘计算是一种将计算和数据存储推向网络边缘的技术,通过将数据处理和分析的任务分散到网络的各个节点,降低了数据传输的延迟,提高了实时性。- 通过网络自动化工具和技术,可以实现网络配置的自动化、网络故障的自动诊断与修复等功能,降低了网络运维的复杂性和成本。- 通过引入人工智能技术,网络可以实现更智能的流量管理、故障预测和自动修复等功能,提高了网络的性能和稳定性。 阅读详情

相关推荐

【 史上最全】测绘、遥感RS、地信GIS国家级比赛竞赛整理

目录Esri Esri

weixin_43910227的博客 9155

JAVA中的vector类

Vector 可实现自动增长的对象数组。java.util.vector提供了向量类(vector)以实现类似动态数组的功能。 为什么会有这样一个类的存在呢? C语言里面指针的存在,能大大提高程序的效率,C++中的动态数组,一般都用指针来实现,但是java中并没有指针,那它是如何为编程人员提供便利的呢?为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。 向量类 创建了一个向量类的对

追梦的女孩博客 1万+

第四届“网鼎杯”网络安全大赛 - 青龙组

第四届“网鼎杯”网络安全大赛 - 青龙组

lpppp小公主的博客 1315

Java中vector的详细说明

Vector 可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功...

小龙技术博客 2994

使用STM32实现简单的语音识别

此外,还需要将计算机的音频输出连接到外部音频放大器上,以便将测试语音播放到MAX9814麦克风模块。运行STM32代码后,系统将开始采集语音数据,并在采集完成后调用Python脚本进行MFCC特征提取。在本案例中,我们将使用STM32F4开发板、MAX9814麦克风模块和MFCC特征提取算法来实现语音识别。通过这个案例,我们可以了解到如何结合STM32开发板和Python实现语音识别,并可以根据需要进行相关扩展和优化。现在,我们可以编译和烧录STM32代码到开发板中,并准备好测试语音文件。

吃不胖. 1475

多源异构数据在线可视化ETL编排平台深度实践:基于Python与Apache Calcite的现代数据管道构建

在当今企业数据环境中,数据源呈现爆发式增长与高度异构性。传统ETL工具面对多源(MySQL、PostgreSQL、MongoDB、Hive、文件系统等)与异构(结构化、半结构化、非结构化)数据时,往往面临扩展性差、学习曲线陡峭、难以融入现代DevOps体系等问题。本文深入探讨了如何构建一个基于Python/Pandas、Apache Calcite(通过JPype桥接)以及Vue.js前端的轻量级、在线可视化ETL编排平台。

2201_76125261的博客 78

Java列表(ArrayList、LinkedList、Vector类的相关功能及应用)

集合框架(ArrayList存储数据并遍历) ​ JDK1.8新增的一个方法也能遍历集合 ​ void forEach(Consumer<? super E> action) 执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常 ​ 代码示例: 去除一个列表中的重复的元素 package org.westos.demo; import java.util....

但行好事 无问西东 859

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 411

Java集合之Vector

Vector是矢量队列,它继承了AbstractList,实现了List、 RandomAccess, Cloneable, java.io.Serializable接口。 Vector接口依赖图: Vector继承了AbstractList,实现了List,它是一个队列,因此实现了相应的添加、删除、修改、遍历等功能。 Vector实现了RandomAccess接口,因此可以随机访问

井底之蛙 2万+

SAP ABAP Web Service 的创建与消费:保姆级教程

SOAP 定义了消息的格式和传输规则,使得 Web Service 可以在不同的操作系统和网络环境中通信。通过 WSDL,服务的提供者可以明确地定义服务的功能,而服务的使用者则可以通过解析 WSDL 文件,了解如何正确地调用该服务。它封装了与 Web 服务通信的所有复杂性,如消息格式的构建、传输协议的选择、请求的发送和响应的处理等。除了本文介绍的 ABAP 编程语言之外,我们还可以通过 Java,Node.js,C++,C#,Python 等其他编程语言来消费本文创建的 ABAP Web Service.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 713

Gazebo手册:【1】gazebo基本操作案例

欢迎来到初学者模块!本模块将引导您了解 Gazebo 的最基本功能。我们将构建一个简单的车辆来演示这些功能。这些教程适用于 Gazebo 新手和/或没有编程或 Linux 经验的人。 每个教程都建立在上一个教程的基础上,因此我们建议您按顺序学习这些教程。 一、何为Gazebo? Gazebo 是一款 3D 动态模拟器,能够准确有效地模拟复杂室内和室外环境中的机器人种群。虽然类似于游戏引擎,但 Gazebo 提供了更高保真度的物理模拟、一套传感器以及用于用户和程序的接口。 1............

gongdiwudu的专栏 2万+

Java Vector list 区别

1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。  2,如果集合中的元素的数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%.如过在集合中使用数据量比较大的数据,用vector有一定的优势。  3,如果查找一个

洪文聊架构 2040

Python 爬虫实战:爬取哔哩哔哩知识区,抓取高赞课程信息

哔哩哔哩(Bilibili)是一个广受欢迎的综合性视频社区,其中的知识区汇聚了大量优质的教育、科普、技术等课程内容。本文将指导读者如何使用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息,并进行数据分析。本文深入探究了利用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息的全流程。从前期的环境搭建、模拟登录,到核心的课程数据抓取、存储,再到后续的数据分析与可视化,都详细展开讲解并提供代码支持。通过此方法所获取的数据,能够助力创作者优化内容、用户发现优质课程、平台洞察用户需求。

u014481728的博客 1137

老紫竹JAVA提高教程-System.arraycopy方法的使用

 不废话,直接看代码就全清楚了。里面 // 后面的是运行的结果 import java.util.Arrays;/** * 老紫竹JAVA提高教程 - System.arraycopy方法的使用。 * * 从指定源数组中复制一个数组,复制从指定的位置开始, * 到目标数组的指定位置结束 * * @author 老紫竹的家(java2000.net,laoz

老紫竹的专栏 4万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

老紫竹JAVA提高教程-信号量(Semaphore)在生产者和消费者模式的使用

 Semaphore 信号量,就是一个允许实现设置好的令牌。也许有1个,也许有10个或更多。谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待。执行完毕,一定要归还(release)令牌,否则令牌会被很快用光,别的线程就无法获得令牌而执行下去了。 请仔细体会里面关于仓库的处理,1 是如何保证入库时,如果仓库满就等待,2 出库时,如果仓库无货就等待的。3

老紫竹的专栏 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老紫竹JAVA基础培训(9),控制台键盘输入(System.in)

    // 这段代码用来读取键盘输入的整数    // 请注意,你需要输入合法的整数    int age = Integer.MIN_VALUE;    while (age == Integer.MIN_VALUE) {      System.out.print("请输入你的年龄:");      try {        age = scan.nextInt();      } catc

老紫竹的专栏 7254

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老紫竹B/S文件管理系统(webfile 0.1版)发布

 老紫竹B/S文件管理系统=================功能介绍-------        1 全部用JSP编写        2 文集列表,支持页面排序(点击标题)        3 编辑小于指定大小的文件(默认1M)        4 上传文件        5 下载文件        安装配置-------        1 标准的W

老紫竹的专栏 5900

跟老紫竹学Java - JAVA自测题栏目正式上线,来测测你的Java功力到底如何!

题目基本上比较基础,但有一些如果不认真还是不行的。栏目地址:http://www.java2000.net/selftest/ 题目在不断的更新中。

老紫竹的专栏 5688

老紫竹JAVA提高教程(2)-认识Set集合之HashSet

原文地址:http://www.java2000.net/p11767 集合在Java里面的作用非凡,我们常用的有Set,List和Map三种,我们先熟悉一下Set,特别是HashSet的使用package collection.lession2;import java.util.HashSet;import java.util.Set;/** * 老紫竹JAVA提高教程(2)-认识Set集合之H

老紫竹的专栏 5567

老紫竹提高教程 - Java代理服务器和NTLM认证的使用

机器在局域网里面,使用了NTLM的认证,不能直接访问外网,本机也没有安装 ISA 的Client这个代码包含了2部分1 如果你使用代理服务器,那么只需要设置Properties部分就行了2 如果你使用NTML,那么用那个Authenticator 就可以了。import java.net.Authenticator;import java.net.PasswordAuthe

老紫竹的专栏 5076

跟老紫竹学Java-图书销售系统

原文地址:http://www.java2000.net/f398博客链接如下跟老紫竹学Java-图书销售系统-项目下载跟老紫竹学Java-图书销售系统-POJO类跟老紫竹学Java-图书销售系统-辅助类和配置文件跟老紫竹学Java-图书销售系统-数据库结构跟老紫竹学Java-图书销售系统-服务接口和实现跟老紫竹学Java-图书销售系统-主页,注册,登录,退出登录等常规页面跟老紫竹学Java-图书

老紫竹的专栏 4920

跟老紫竹学Java-留言板项目

本项目将提供一个可以注册,发言和回复的留言板。提供自己书写的分页功能。 提供JDBC和Hibernate两个后台版本的实现提供 JSTL和JSP的两个前台版本的实现数据库结构和POJO http://blog.youkuaiyun.com/java2000_net/archive/2008/07/20/2680146.aspx 服务接口 http://blog.youkuaiyun.com/java2

老紫竹的专栏 4504

老紫竹JAVA提高教程(4)-认识Set集合之TreeSet

原文地址:http://www.java2000.net/p11837TreeSet 是用来进行集合排序的,请注意他和LinkedHashSet的区别。TreeSet是按照一定的规则,将加入到集合里面的数据进行排序,而LinkedHashSet是严格按照你放入集合的顺序进行使用。先看源代码package collection.lession4;import java.util.Arra

老紫竹的专栏 4234

老紫竹JAVA提高教程(3)-认识Set集合之LinkedHashSet

 原文地址:http://www.java2000.net/p11794有序的集合,就是LinkedList,内部通过双向链表实现,LinkedHashMap为基础。package collection.lession3;import java.util.Arrays;import java.util.HashSet;import java.util.LinkedHashSet;import 

老紫竹的专栏 4145

老紫竹JAVA基础培训(6),For循环语句的使用

原文:http://www.java2000.net/p11512在所有的循环中,最常用的就是for了,另外2个 while和do..while我基本不用。所以我这里就把for循环重点介绍一下。package lession6;/** * 老紫竹JAVA基础培训(6),For循环语句的使用。 *  * @author 老紫竹 JAVA世纪网(java2000.net) *  */public cl

老紫竹的专栏 3983

跟老紫竹学Java-留言板-回复页面(JSP)

 原文地址:http://www.java2000.net/viewthread.jsp?tid=7342以下是图片,不是文字 <!--google_ad_client = "pub-2908059660288034";/* 728x90,首页中间 创建于 08-8-14 */google_ad_slot = "5903610560";google_ad_wi

老紫竹的专栏 3858
上一篇: 专栏功能开通,支持原创,精华奖励(竹币)政策出台
下一篇: 求高人指点,为何Google的来访量突然降低那么多?哪位帮我分析一下?
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值