Java基础培训(第5章 数组、Vector与字符串)
辽宁桑地公司 朱雷
第5章 数组、Vector与字符串
数组
定义:是一组有序数据的集合
int i[]; char c[]; float f[][];
数组声明: 数组类型 数组名 [] 数组类型 [] 数组名
数组创建: char s[] = new char[10]; //创建一个10个内容的数组 int[] itable = {1, 2, 3, 48, 9}; //创建一个5个内容的数组,并初始化
检索字符串的位置indexOf(),lastIndexOf()
String str = "This is a String"; int index1 = str.indexOf("i"); //index1=2 int index2 = str.indexOf("i",index1+1); //index2=5 int index3 = stIndexOf("i"); //index3=13 int index4 = str.indexOf("String"); //index4=10 int index5 = str.indexOf("p"); //index5=-1
第5章 数组、Vector与字符串
改变Vector的大小
//获取Vector的元素个数 public final int size(); //获取Vector的容量 public final int capacity(); //设置容量 public final synchronized void ensureCapatity(int minimumCapacity); //将容量减少到元素个数 public final synchronized void trimToSize(); //改变元素个数,如果比原来小则元丢失,如果多,则新增加为null public final synchronized void setSize(int newSize); 作业2:创建一个大小为4的Vector,向里面添加" China"," England"," Franch"," Germany",打印出所有数据、Vector的元素个数和容量, ,在索 引2位置添加一个" America",打印所有数据、Vector的元素个数和容量, 删除索引3位数据后再打印所有数据、Vector的元素个数和容量
第5章 数组、Vector与字符串
向量Vector
访问和查找Vector中的数据
//查找最后一个出现的位置,找不到返回-1 public final int lastIndexOf(Object ob); //查找从startIndex开始,第一次出现的位置 public final synchronized Object indexOf(Object ob, int startIndex) throws ArrayIndexOutOfBoundsException; //查找从startIndex开始,最后一次出现的位置 public final synchronized Object lastIndexOf(Object ob, int startIndex) throws ArrayIndexOutOfBoundsException;
二维数组创建: char s = new char[2][3]; //创建一个2*3的二维数组 int a = new int[3][]; a[0] = new int[3]; a[1] = new int[5]; a[2] = new int[7]; int[][] a = {{1,2},{3,4,5,6},{5,6,7}};
检索字符串开始startsWith(string prefix),结束 endsWith(String suffix)
第5章 数组、Vector与字符串
字符串的比较equals();
String s1 = "aaa"; String s2 = "aaa"; String s3= new String("aaa"); String s4 = new String("aaa"); System.out.println("s1==s2:" + (s1==s2)); System.out.println("s3==s4:" + (s3==s4)); System.out.println("s1.equals(s2):" + s1.equals(s2)); System.out.println("s3.equals(s4):" + s3.equals(s4));
第5章 数组、Vector与字符串
字符串
字符串的定义:
String s1 = "This is a String"; String s2 = new ("This is a String");
可变长字符串StringBuffer
public StringBuffer(); //创建一个空的可变长字符串 public StringBuffer(int length); //创建一个一定长度的可变长字符串 public StringBuffer(String str); //创建一个指定初值的可变长字符串
第5章 数组、Vector与字符串
向量VectorLeabharlann 访问和查找Vector中的数据
//访问某个数据 public final synchronized Object elementAt(int index) throws ArrayIndexOutOfBoundsException; //查找第一个元素数据 firstElement(); //查找最后一个数据; lastElement(); //查找是否为空 isEmpty(); //查找是否包含某个元素 public final boolean contains(Object ob); //查找元素第一个出现的位置,找不到返回-1 public final int indexOf(Object ob);
第5章 数组、Vector与字符串
向量Vector(增加和删除数据)
//向向量最后增加一个数据 public final synchronized void addElement(Object newElement); //把新对象插入到index位置 public final synchronized void inssertElementAt(Object newElement,int index) thorws ArrayIndexOutOfBoundsException //改变某一位置的数据 public final synchronized void setElementAt(Object newElement,int index) thorws ArrayIndexOutOfBoundsException //删除所有数据 public final synchronized void removeAllElements(); //删除一个特定的对象,如果有多个,则只移出第一个 public final synchronized boolean removeElement(Object ob) //删除指定位置上的数据 public final synchronized void removeElementAt(int index) thorws ArrayIndexOutOfBoundsException
获取字符串的长度方法length()
String s = "This is a String"; int length = s.length();
第5章 数组、Vector与字符串
字符串
获取StringBuffer的容量capacity()方法
StringBuffer s = new StringBuffer("This is a String"); int cap = s.capacity();
二维数组下标也是从0开始 作业1:创建一个2维数组,并将各个数据打印 出来
第5章 数组、Vector与字符串
向量Vector
与数组类似,可以存储多个对象 采用索引来检索存储的对象 长度会自动增加 提供了额外的增加和删除元素的方法
Vector的三种构造方法: public Vector(); //创建一个空的Vector public Vector(int initialcapacity);//创建一个初始大小为initialcapacity的 //Vector public Vector(int initialcapacity, int capacityIncrement);//创建一个初始大 //小为initialcapacity,每次递增capacityIncrement 的Vector
第5章 数组、Vector与字符串
修改可变长字符串
//添加数据append(); StringBuffer str = new StringBuffer("This is a String"); str.append(" Test"); //str= "This is a String Test" //插入数据 str.innsert(9,"test"); //str="This is atest Sring Test" ,书上有错误 //设置指定位置的字符 str.setCharAt(9,'B') //str = "This is aBest String Test"
《Java程序设计基础》课程标准
《Java程序设计基础》课程标准一、课程说明二、课程定位《Java程序设计基础》课程是面向软件与信息服务专业学生开设的必修专业课。
通过本课程的学习,能使学生掌握程序设计的基本思想与方法,掌握面向对象编程技术,常用系统类使用,图形用户界面设计,图形处理,多媒体处理,异常处理,文件和流处理,多线程技术和网络编程技术,为学生后续知识(如:Android开发技术)的学习打下基础,同时也为毕业后从事相关专业职业岗位工作具备基本计算机应用能力打下坚实的基础。
三、设计思路《Java程序设计基础》是一门实践性很强的课。
Java语言作为一门经典的面向对象高级程序设计语言其优势在于网络程序设计。
《Java程序设计基础》课程主要侧重于面向对象程序设计和简单网络程序设计实践能力的培养。
该课程的任务,不只是为了要求学生学会使用某种特定的语言,更重要的是要求学生学习面向对象的软件设计思想,以此拓展学生的软件设计的思维空间,训练学生的软件设计的实际开发能力。
在教学过程中注重培养提高学生的职业岗位技能和职业素质,力求达到岗位技能和职业标准。
教学要求在每一章教学内容之后给出,大体分为三个层次:了解、掌握和熟练掌握。
它们的含义大致为:了解就是掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。
四、课程培养目标(一)专业能力1.通过学习使得学生掌握Java开发工具,掌握面向对象程序的基本结构,能够完成基本类的设计和应用。
2.掌握程序设计的基础:基本的数据类型,运算符、表达式和语句。
3.掌握程序设计的结构、设计方法。
4.掌握数组和字符串的使用。
5.掌握继承的概念、能够正确地实现继承。
6.能够准确地理解接口,掌握接口的设计和实现方法。
7.理解异常处理的概念,能够准确地应用异常的处理方法,在未来工作中处理不同异常。
8.掌握集合类的概念和使用方法。
9.掌握图形界面的设计方法,掌握不同组件的功能和使用方法,掌握布局的设计方法。
JAVA程序设计课件:数组与字符串
数组与字符串
数组与字符串
4.3.3 二维数组 我们在讨论一维数组的时候谈到,数组的元素类型可以
为数组,即数组的嵌套。其实,多维数组可以看作是数组的 数组。也就是说,多维数组中每个元素为一个低一维的数组。 由于多维数组中用得较多的还是二维数组,因而本节着重讨 论二维数组的属性,其他高维数组可以以此类推。
数组与字符串
4.3 技 术 准 备
4.3.1 数组的概念与分类 在程序设计中,为了数据处理方便,把相同类型的若干
变量顺序地组织起来,按其位置(下标)进行访问,这些按序 排列的同类数据元素的集合称为数组。这些数据线性存放在 连续的内存地址中。
数组与字符串
数组属于引用(构造)数据类型,它实际上是数组变量的 简称。一个数组可以由多个数组元素构成,这些数组元素可 以是基本数据类型,也可以是引用数据类型。
数组名 = new 数据类型[数组长度];
数组与字符串
其中,数组长度就是数组中可以存放的元素的个数。该 语句为数组分配了相应的内存空间。如果数据类型是int, 长度为10,由于一个int数占用4 个字节的内存,10个int数则 需要占用10 × 4 = 40个字节的内存,而且是连续的。数组 长度必须是整型常量、整型变量或整型表达式。数组一旦创 建好,其长度在程序中是不能修改的,例如:
数组与字符串
1. 二维数组的声明、创建与初始化
二维数组的声明、创建和初始化过程基本与一维数组的
类似。
1)二维数组的声明
与一维数组类似,二维数组声明的一般格式如下:
数据类型 数组名[ ] [ ];
或
数据类型[ ] [ ]
数组名;
数组与字符串
其中,数据类型为数组元素的数据类型,它可以是任何 的数据类型;数组名是Java中合法的标识符。上面的定义并 没有为数组元素分配内存空间,因而必须经过初始化后才能 使用。二维数组由两对[]标识,例如:
vectorjava用法
vectorjava用法一、Vector在Java中的基本用法1. 在Java中,`Vector`就像是一个多功能的收纳盒。
你可以把各种对象往里塞。
比如说,我有一个`Vector`叫做`myVector`,用来存储一些字符串。
首先得导入`java.util.Vector`这个包哦。
就像这样:`importjava.util.Vector;`。
然后创建`Vector`对象,`Vector<String> myVector = new Vector<>();`。
这就像是准备好了一个空的收纳盒,专用于存放字符串类型的东西。
2. 往`Vector`里添加元素超级简单。
你就像把东西放进收纳盒一样。
比如要添加一个字符串"Hello",直接用`myVector.add("Hello");`就行。
这就好比把一个小宝贝放进了收纳盒里,安心又方便。
嘿,你难道不觉得这很容易吗?3. 获取`Vector`中的元素也不难。
假如你想知道收纳盒里的第一个东西是什么,你可以用`myVector.get(0)`。
这里的`0`就代表第一个元素的索引,就像收纳盒里的东西也有个摆放顺序一样。
不过要小心哦,如果收纳盒里啥都没有,这么做可就会出问题啦,就像你去一个空盒子里找东西,肯定找不到呀。
4. 有时候我们需要知道`Vector`里到底装了多少东西呢?很简单,用`myVector.size()`就可以了。
这就像清点收纳盒里东西的个数一样。
如果这个数字是0,那就是个空收纳盒咯,好可怜的感觉。
5. `Vector`还可以删除元素呢。
要是你发现收纳盒里有个不想要的东西,比如说一个错误的字符串,你可以用`myVector.remove("错误的字符串");`把它拿掉。
这就像是从收纳盒里扔掉一个坏东西一样,让收纳盒保持整洁。
6. 在Java中,`Vector`是线程安全的。
vector java用法
vector java用法Vector是Java中的一个动态数组类,可以存储任意类型的对象。
Vector的大小可以根据需要自动增长或缩小。
在多线程环境中,Vector是线程安全的,可以被多个线程同时访问和修改。
本文将介绍Vector的使用方法和常见应用场景。
一、Vector的基本使用方法1. 创建Vector对象可以使用无参构造函数创建一个空的Vector对象,也可以使用带初始容量参数的构造函数创建指定大小的Vector对象。
```javaVector<String> vector1 = new Vector<>();Vector<String> vector2 = new Vector<>(10);```2. 添加元素可以使用add()方法向Vector中添加元素,也可以使用addAll()方法添加多个元素。
如果添加的元素已经存在于Vector中,则不会重复添加。
```javavector1.add('Java');vector1.add('Python');vector1.add('C++');List<String> list = new ArrayList<>();list.add('JavaScript');list.add('PHP');vector1.addAll(list);```3. 获取元素可以使用get()方法获取Vector中指定位置的元素,也可以使用elementAt()方法获取指定位置的元素。
如果指定位置不存在元素,则会抛出ArrayIndexOutOfBoundsException异常。
```javaString first = vector1.get(0);String second = vector1.elementAt(1);```4. 修改元素可以使用set()方法修改Vector中指定位置的元素。
gjm_Java第5章( 数组与字符串)
2、二维数组的动态初始化 法1:直接为每一维分配空间,格式如下: arrayName = new type[arrayLength1][arrayLength2]; 举例: int a[ ][ ] = new int[2][3]; a[0][0]=1; a[1][2]=6;
27
法2:从最高维开始,分别为每一维分配空间: arrayName = new type[arrayLength1][ ]; arrayName[0] = new type[arrayLength20]; arrayName[1] = new type[arrayLength21]; … arrayName[arrayLength1-1] = new type[arrayLength2n];
30
5.3.3二维数组元素的引用
引用方式为: arrayName[index1][index2] 例如: num[1][0];
31
Java的多维数组不一定是规则的矩阵形式,如 图所示。
1 m行 5 9 2 6 10 7 11 8 n列
图 Java语言的二维数组不一定是矩形
如:int [] [] x; x=new int [3] [ ];
int x[ ] = new int [10]; 其中x[0]代表数组中第1个元素,x[1]代表第2个 元素,x[9]为第10个元素,也就是最后一个元素。
11
【例5.1】声明一个一维数组,其长度为 5,利用循环对数组元素进行赋值,然后再利 用另一个循环逆序输出数组元素的内容。程 序代码如下:
12
//app5_1.java 一维数组 【例5.1】续 public class app5_1 { public static void main(String args[ ]) { int i; int a[]; //声明一个数组a a=new int[5]; //分配内存空间供整型数组a使用,其元素个数为5 for(i=0;i<5;i++) //对数组元素进行赋值 a[i]=i; for(i=a.length-1;i>=0;i--) //逆序输出数组的内容 System.out.print(“a[”+i+”]=”+a[i]+”,\t”); System.out.println(“\n数组a的长度是:”+a.length); } } 13
Java基础培训(第5章 数组、Vector与字符串)PPT教学课件
//小为initialcapacity,每次递增capacityIncrement 的Vector
2020/12/10
4
第5章 数组、Vector与字符串
向量Vector
访问和查找Vector中的数据
//访问某个数据 public final synchronized Object elementAt(int index)
throws ArrayIndexOutOfBoundsException; //查找第一个元素数据 firstElement(); //查找最后一个数据; lastElement(); //查找是否为空 isEmpty(); //查找是否包含某个元素 public final boolean contains(Object ob); //查找元素第一个出现的位置,找不到返回-1 public final int indexOf(Object ob);
throws ArrayIndexOutOfBoundsException; //查找从startIndex开始,最后一次出现的位置 public final synchronized Object lastIndexOf(Object ob, int startIndex)
throws ArrayIndexOutOfBoundsException;
2020/12/10
6
第5章 数组、Vector与字符串
向量Vector(增加和删除数据)
//向向量最后增加一个数据 public final synchronized void addElement(Object newElement); //把新对象插入到index位置 public final synchronized void inssertElementAt(Object newElement,int index)
java字符串及数组
多维数组
Int twoDim[][]=new int[4][]; twoDim[0]=new int[4]; twoDim[1]=new int[2]; twoDim[2]=new int[3]; twoDim[3]=new int[4];
//Example 7 of Chapter 2 import javax.swing.JOptionPane; public class SimpleApp9 { public static void main(String[] args) { String output = ""; short ShortArray1[] = {1,2,3,4,5,6}; short ShortArray2[] = {31,32,33,34,35,36,37,38,39}; short ResultArray[]; ResultArray = new short[ShortArray1.length+ShortArray2.length]; System.arraycopy(ShortArray1,0,ResultArray,0,ShortArray1.length); System.arraycopy(ShortArray2,0, ResultArray,ShortArray1.length,ShortArray2.length); output +="数组 数组ResultArray的元素是:\n"; 的元素是: 数组 的元素是 for(int i=0;i<ResultArray.length;i++) { output +=ResultArray[i]+","; } JOptionPane.showMessageDialog(null,output); System.exit(0); } }
第5章 java数组字符串向量
(1) 与C/C++不同的是,Java对数组元素的下标要进行越界检查, 以保证访问的安全性。若数组下标越界,Java会抛出 ng.ArrayIndexOutOfBoundsException异常。
(2) length是属于数组对象的数据域而不是方法。因此,使用 length()会出错,length只有在数组创建后才能访问。创建前, 数组的引用是null。
继承性和多态性
开始
返回 上一页 下一页
17
【例5.5】测定数组的长度及数组赋值。
public class twoDimensionArray
{ public static void main(String arg[]) { int[][] matrix = { {1, 2, 3, 4, 5}, {2, 3, 4, 5}, {3, 4, 5}, {4, 5}, {5} }; System.out.println("the length of matrix is "+matrix.length); for (int i=0;i<5;i++) System.out.println("the length of matrix["+i+"] is "+matrix[i].length); }
String s1="ABC";
String s2="ABC";
String s3=new String("ABC");
上述三条语句创建了三个对象,其中s1和s2是同一个对象, 而s1和s3是2个不同的对象,尽管它们所表示的字符序列相 等。
java数组向量和字符串
14
数组元素的引用
数组名加上下标, 引用方式为: index为数组下标,下标从0开始,一直到length-1 arrayName[index]
下标是整型常数或表达式 arrayName[1], arrayName[i], arrayName[6*i]
第4章
数组和字符串
1
本章主要内容
数组——重点
向量类Vector ——了解
字符串String——重点
2
数组
数组是一系列的匿名变量,数组中的元素可通过 下标来访问。 数组在使用之前必须先说明 ,可以说明任何类型 的数组(本类型,类类型等)。 数组的分类: 一维数组、多维数组(二维及以上)。
构造一个初始存储容量为initialCapacity,每次容 量增量为capacityIncrement的空向量
Name[ ];
char s[ ]; int intArray[ ]; Date dateArray[ ]; Point points[ ];
格式二: type[ ] arrayName;
char [ ] s; int [ ] intArray; Date [ ] dateArray; Point [ ] points;
与一维数组一样,二维也要使用new运算符 来分配内存,然后才可以访问每个元素。
17
多维数组的初始化
静态初始化
在定义数组的同时为数组分配空间
动态初始化
直接为每一维分配空间 从最高维起(而且必须从最高维开始),分别 为每一维分配内存
java之vector详细介绍
java之vector详细介绍1 vector介绍Vector简介Vector 是⽮量队列,它是JDK1.0版本添加的类。
继承于AbstractList,实现了List, RandomAccess, Cloneable这些接⼝。
Vector 继承了AbstractList,实现了List;所以,它是⼀个队列,⽀持相关的添加、删除、修改、遍历等功能。
Vector 实现了RandmoAccess接⼝,即提供了随机访问功能。
RandmoAccess是java中⽤来被List实现,为List提供快速访问功能的。
在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
Vector 实现了Cloneable接⼝,即实现clone()函数。
它能被克隆。
和ArrayList不同,Vector中的操作是线程安全的。
Vector的构造函数Vector共有4个构造函数// 默认构造函数Vector()// capacity是Vector的默认容量⼤⼩。
当由于增加数据导致容量增加时,每次容量会增加⼀倍。
Vector(int capacity)// capacity是Vector的默认容量⼤⼩,capacityIncrement是每次Vector容量增加时的增量值。
Vector(int capacity, int capacityIncrement)// 创建⼀个包含collection的VectorVector(Collection<? extends E> collection)vector的APIsynchronized boolean add(E object)void add(int location, E object)synchronized boolean addAll(Collection<? extends E> collection)synchronized boolean addAll(int location, Collection<? extends E> collection)synchronized void addElement(E object)synchronized int capacity()void clear()synchronized Object clone()boolean contains(Object object)synchronized boolean containsAll(Collection<?> collection)synchronized void copyInto(Object[] elements)synchronized E elementAt(int location)Enumeration<E> elements()synchronized void ensureCapacity(int minimumCapacity)synchronized boolean equals(Object object)synchronized E firstElement()E get(int location)synchronized int hashCode()synchronized int indexOf(Object object, int location)int indexOf(Object object)synchronized void insertElementAt(E object, int location)synchronized boolean isEmpty()synchronized E lastElement()synchronized int lastIndexOf(Object object, int location)synchronized int lastIndexOf(Object object)synchronized E remove(int location)boolean remove(Object object)synchronized boolean removeAll(Collection<?> collection)synchronized void removeAllElements()synchronized boolean removeElement(Object object)synchronized void removeElementAt(int location)synchronized boolean retainAll(Collection<?> collection)synchronized E set(int location, E object)synchronized void setElementAt(E object, int location)synchronized void setSize(int length)synchronized int size()synchronized List<E> subList(int start, int end)synchronized <T> T[] toArray(T[] contents)synchronized Object[] toArray()synchronized String toString()synchronized void trimToSize()2 vector数据结构vector的继承关系ng.Object↳ java.util.AbstractCollection<E>↳ java.util.AbstractList<E>↳ java.util.Vector<E>public class Vector<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable {}Vector与Collection关系如下图:Vector的数据结构和差不多,它包含了3个成员变量:elementData , elementCount,capacityIncrement。
