java数组的添加用什么方法吗?java数组添加元素的方法
大家好,今天小编来为大家解答以下的问题,关于java数组的添加用什么方法吗,java数组添加元素的方法这个很多人还不知道,现在让我们一起来看看吧!
Java:向数组中添加元素
程序的执行没有问题,确实是三个数组已满。
你的想法应该是一旦在数组中找到空元素就加入新元素,应该在if判断当前元素为空时加入元素。可以在最后输出数组查看。index可以作为判断标准,在循环结束时index还是-1,说明数组是满的。
public class SuppleMent{
public static void main(String[]args){
int index=-1;//假设的数组下标索引
String[] phones={"小米","中兴","华为",null};
for(int i=0;i<phones.length;i++){
if(phones[i]==null){
index=i;
phones[i]="联想";
}
}
if(index==-1)
System.out.println("数组是满的。");
for(int j= 0;j<phones.length;j++){
System.out.println(phones[j]);
}
}
}
java数组方法pop() push() unshift() shift()
JS中的数组提供了四个操作,以便让我们实现队列与堆栈!
小理论:
队列:先进先出
堆栈:后进先出
实现队列的方法:
shift:从集合中把第一个元素删除,并返回这个元素的值。
unshift:在集合开头添加一个或更多元素,并返回新的长度
push:在集合中添加元素,并返回新的长度
pop:从集合中把最后一个元素删除,并返回这个元素的值。
这是原来老赵写的关于数组队列的代码,觉得有点问题,所以改了一下
1// Usage:装载并运行函数
2//队列机制
3 var Resource=(function(){
4 var waitingCallbacks= [];
5 var execute= function(cb){
6 setTimeout(function(){
7 cb(function(){
8 if(waitingCallbacks.length== 0) return;
9 execute(waitingCallbacks.shift());
10});
11}, 0);
12};
13 var register= function(cb){
14 if(waitingCallbacks.length== 0){
15 execute(cb);
16} else{
17 waitingCallbacks.push(cb);
18}
19}
20 return{
21 register: register,
22 state: 1
23}
24})();
原来代码中是
execute(waitingCallbacks.unshift());现在我改成了
execute(waitingCallbacks.shift());当你从集合中执行了函数后,它应该从集合中删除,而不是再添加,呵呵。
java数组添加元素的方法
向数组里添加一个元素怎么添加,这儿总结有三种方法:
1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。
但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;例子如下:
List
list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(2,4);
System.out.println(list);
1
2
3
4
5
6
1
2
3
4
5
6
打印结果: [1, 2, 4, 3]
2、思路为先把array转化为list,用list的add()方法添加元素,再把list转化为array。
但这儿会有一个陷阱盲区,在把array转化为list的过程中,使用的asList()方法会返回一个final的,固定长度的ArrayList类,并不是java.util.ArrayList,直接这样利用它进行add()或remove()是无效的。
List
list=new ArrayList();
list=Arrays.asList(sz);
list.add(5);
1
2
3
1
2
3
那应该怎么做呢,在定义list的时候就直接对array进行转化,代码如下:
(注意这儿Array类型是包装类,若是一般数据类型记得转化,转化参考我其他博客文章。)
//如 List
list=new ArrayList();
// list=Arrays.asList(str);
//这样不行,须如下:
Integer []sz={3,2};
List
list=new ArrayList(Arrays.asList(sz));//**须定义时就进行转化**
list.add(1,5);
Integer[] nsz=new Integer[list.size()];
list.toArray(nsz);
System.out.println(Arrays.toString(nsz));
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
结果输出为:[3, 5, 2]
3、第三个方法思路为创建一个新数组,新数组的大小为旧数组大小+1,把旧数组里的元素copy一份进新数组,并把要添加的元素添加进新数组即可。
java如果把Array中的数组的值进行相加呢
你的意思是说比如数组里面有5个对象,现在要改为6个或者更多?未来你学集合就知道了,不过我这里自己封装一个类,里面就是操作Object数组的,增删插入指定位置都有,代码如下:
public class MyList{
private int size;
Object[] object= null;
Object[] temp;
int sequence= 0;
public MyList(){
this(1);
}
public MyList(int size){
if(size<= 0){
throw new IllegalArgumentException("长度应大于0");
} else{
this.size= size;
this.object= new Object[this.size];
}
}
// Add, Insert, Delete, Find
public void add(Object obj){
if(obj== null){
throw new IllegalArgumentException("添加的对象不应为null");
} else{
if(sequence>= size){
this.size++;//这里扩展空间方式随意,可以每次扩展两倍
temp= new Object[this.size];
System.arraycopy(object, 0, temp, 0, object.length);
object= temp;
temp= null;
}
object[sequence]= obj;
sequence++;
}
}
public void insert(int index, Object obj){
if(index< 0|| obj== null){
throw new IllegalArgumentException("插入的索引值应不小于0,并且插入的对象不应为null");
} else{
if(index== object.length){
add(obj);
} else if(index> object.length){
throw new IllegalArgumentException("数据越界,插入的索引不应不在数组范围内");
}
if(sequence>= size){
this.size++;
}
temp= new Object[this.size];
System.arraycopy(object, 0, temp, 0, index);
temp[index]= obj;
System.arraycopy(object, index, temp, index+1, object.length-index);
object= temp;
temp= null;
sequence++;
}
}
public void delete(int index){
if(index< 0|| index>this.size){
throw new IllegalArgumentException("索引应在数组范围内");
} else{
temp= new Object[--this.size];
System.arraycopy(object, 0, temp, 0, index);
System.arraycopy(object, index+1, temp, index, object.length-1-index);
object= temp;
temp= null;
sequence--;
}
}
public Object find(int index){
if(index< 0|| index> this.size){
throw new IllegalArgumentException("索引应大于0或不大于集合元素数");
} else{
return object[index];
}
}
public int size(){
return this.size;
}
}
好了,文章到这里就结束啦,如果本次分享的java数组的添加用什么方法吗和java数组添加元素的方法问题对您有所帮助,还望关注下本站哦!