今天开始重新复习Java,完成了leetcode的第一题。
1.算法:
给定一个数组和目标值,找出相加等于目标值的数组元素的下标。
数组[2,7,11,15];
target:9;
返回:[0,1];
import java.util.Vector;
class Solution {
public int[] twoSum(int[] nums, int target) {
Vector in=new Vector();
int []inde =new int[2];
for(int i=0;i<nums.length;i++)
for(int j=i+1;j<nums.length;j++)
class Solution {
public int[] twoSum(int[] nums, int target) {
Vector in=new Vector();
int []inde =new int[2];
for(int i=0;i<nums.length;i++)
for(int j=i+1;j<nums.length;j++)
{
if(nums[i]+nums[j]==target)
{
if(!in.contains(i))
in.add(i);
if(!in.contains(j))
in.add(j);
}
}
Integer[] ind=in.toArray(new Integer[in.size()]);
for(int k=0;k<ind.length;k++)
{
inde[k]=ind[k].intValue();
}
return inde;
if(nums[i]+nums[j]==target)
{
if(!in.contains(i))
in.add(i);
if(!in.contains(j))
in.add(j);
}
}
Integer[] ind=in.toArray(new Integer[in.size()]);
for(int k=0;k<ind.length;k++)
{
inde[k]=ind[k].intValue();
}
return inde;
}
2.Vector的基本定义,声明,申请空间及基本操作
Vector实现了Java中动态数组的功能,基本原理是先分配固定的空间,当空间不够时再申请新的空间。
容量是指向量能够容纳的元素个数,而长度则是指真是元素的真实个数,容量增量是指申请新空间的大小-通常是非负整数(0代表翻倍);
声明和初始化:Vector <Object> vo=new Vector<Object> (); 不使用参数默认初始容量为10,增量为0;一个参数代表初始容量,增量默认为0;两个参数分别代表初始容量和增量;
添加元素:
boolean add(E o)和void addElement(E o)功能相似,都是在向量尾添加元素;
而
void add(int i,E o)和void insertElementAt(E o,int i)功能相同,都是插入,两个参数一个是插入位置,一个是插入对象,
顺序相反。
修改元素:
E set(int i,E o)和void seElementAt(E o,int i)
删除元素:
void clear()和void removeAllElements()都是清空;
E remove(int i)和void removeElementAt(int i)作用移除固定位置元素;
boolean remove(O o),boolean removeElement(O o)删除第一个与o相同的元素。
查询元素:
boolean cotains(O o)查询Vector是否包含o;
int IndexOf(O o)查询o相等元素的第一次出现的位置,如找不到返回-1;int lastIndexOf(O e)查找最后一个并返回下标,否则返回-1;
而int IndexOf(O o,int i) 和 int lastIndexOf(O e,int i)代表大于等于i的第一个元素的下标以及小于等于i的最后一个;
E elementAt(int i)和E get(int i)返回下标为i的元素;
E firstElement()和E lastElement()返回第一个和最后一个元素。
其他操作:int capacity()返回容量,int size()返回长度,boolean isEmpty()判断是否为空,void trimToSize()是容量变为长度。
迭代器:
方便的循环。
示例
Vector <String> vo=new Vector<String> ();
//Vector的赋值
Iterator<String> it=vs.Iterator();
//此时it指向第1个元素之前,Vector不能再发生改变,否则就会抛出异常
java.util.ConcurrentModificationException
while(it.hasNext())
{System.out.println(it.next());}
3.一些转换
3.一些转换
Vector与数组的转换:
Integer[] ind=
in.
toArray(new Integer[in.size()]); 其中in是Vector对象,ind为Integer数组;
Integer与int的转换:
inde[k]=ind[k].
intValue();
4.基础复习
Java第一章:
JDK和JRE的区别:JRE(Java Runtime Environment)Java运行时环境有些程序运行需要Java环境,因此JRE只是给客户端使用的。
JDK(Java Development Kit)开发Java程序时组件,需要手动配置路径变量,包含JRE。
Java第二章:
>>>无符号右移A>>>B代表将A的补码向右移动B位,左边补0,而A>>B则是左边补最高位。
foreach用法:
for(String st:vs)
{
System.out.println(st);
}
{
System.out.println(st);
}
可以直接遍历Vector<String>对象vs的值。
这里的vs可以是数组,向量,哈希,链表等等。