重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

list代码java,list程序

Java的List如何实现线程安全?

解决这个问题通常有两种方法(个人认为)

成都创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站设计制作、网站制作,塑造企业网络形象打造互联网企业效应。

一:使用synchronized关键字,这个大家应该都很熟悉了,不解释了;

二:使用Collections.synchronizedList();使用方法如下:

假如你创建的代码如下:ListMapString,Object data=new ArrayListMapString,Object();

那么为了解决这个线程安全问题你可以这么使用Collections.synchronizedList(),如:

ListMapString,Object data=Collections.synchronizedList(new ArrayListMapString,Object());

其他的都没变,使用的方法也几乎与ArrayList一样,大家可以参考下api文档;

额外说下 ArrayList与LinkedList;这两个都是接口List下的一个实现,用法都一样,但用的场所的有点不同,ArrayList适合于进行大量的随机访问的情况下使用,LinkedList适合在表中进行插入、删除时使用,二者都是非线程安全,解决方法同上(为了避免线程安全,以上采取的方法,特别是第二种,其实是非常损耗性能的)。

怎样用Java编写一个list

import java.util.Iterator;

public class MyArrayList {

Object[] arr;

int size=0;

public MyArrayList(){

this(10);

}

public MyArrayList(int R){

arr=new Object[R];

}

public int size() {

return size;

}

public void add(Object obj){

if(arr.length=size+1){

arr[size]=obj;

size++;

}else{

int i=arr.length*3/2+1;

Object[] a2=new Object[i];

System.arraycopy(arr,0,a2,0, size);

a2[size]=obj;

size++;

arr=a2;

}

// if(arr.lengthsize+1){

// Object[] a=new Object[size*3/2+1];

// System.arraycopy(arr, 0, a, 0, size);

// arr=a;

// }

// arr[size]=obj;

// size++;

//}

}

public Object get(int i){

if(i0||i=size){

throw new ArrayIndexOutOfBoundsException(i);

}else{

return arr[i];

}

}

public Object set(int i,Object obj){

if(i0||i=size){

throw new ArrayIndexOutOfBoundsException(i);

}else{

size++;

Object o=arr[i];

for(int j=size-1;ji;j--){

arr[j]=arr[j-1];

}

arr[i]=obj;

return o;

}

}

public Object remove(int i){

if(i0||i=size){

throw new ArrayIndexOutOfBoundsException(i);

}else{

Object o=arr[i];

for(int j=i;jsize-1;j++){

arr[j]=arr[j+1];

}

size--;

// System.arraycopy(arr, i+1, arr, i,size-(i+1));

// arr[--size]=null;

return o;

}

}

public Iterator iterator(){

return new MyIterator();//创建迭代器并以父接口类型返回

}

private class MyIterator implements Iterator{//在内部类中可以不

int index=0;

public boolean hasNext(){

return indexsize;

}

public Object next(){

return arr[index++];

}

public void remove(){

MyArrayList.this.remove(index);//内部类调用外部类的方法

}

}

}

//注释为可替换代码

java把一个list中的内容添加到另一个list中

在JAVA中,想要把一个list中的内容添加至另一个list中,有两种方法:

采用循环的方法。通过循环第一个ArrayList,然后通过每循环一次的方式,将值赋值给另一个ArrayList。具体代码实现如下:

2.采用ArrayList自带的addAll()方法。addAll()方法是通过传入整一个List,将此List中的所有元素加入到新的List中,也就是当前List会增加的元素个数等于传入的List的大小。该方法较为简单,具体代码实现如下:

拓展资料:

1.List.add() 和 List.addAll() 的区别:

(1)List.add() 方法,也是往List 中增加list,但是,它增加的是一个List 实例。如果,往容器中增加的那个List 实例从数据库中查到的结果有5条,不过,如果使用了List.add(list1);程序只会输出一条记录。原因就是上面说的。List.add() 加List 实例,它会把这个看一个实例,而不是把那个看成一个容器。

(2) 例如:List.add(list1),List.add(list2);List.add(list3),  这时,List.size 它的大小是3。

(3)List.add() 的含义就是:你往这个List 中添加对象,它就把自己当初一个对象,你往这个List中添加容器,它就把自己当成一个容器。

(4)List.addAll()方法,就是规定了,自己的这个List 就是容器,往里面增加的List 实例,增加到里面后,都会被看成对象。

(5) 这时:List.add(list1),List.add(list2);List.add(list3),  这时,List.size 它的大小就是所有list 实例化后的总数和总的记录数。

2.集合是Java API所提供的一系列类,可以用于动态存放多个对象。集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。集合中不能放基本数据类型,但可以放基本数据类型的包装类。 集合类全部支持泛型,是一种数据安全的用法。java列表是集合的一种,并且列表中的元素是有序的,且允许重复。java列表又称为java list。

参考资料:Java List_百度百科

JAVA程序利用List编写队列结构,求简易代码

package list;

import java.util.ArrayList;

//这是关于List用法,代表性的有LinkedList,ArrayList,Vector用法类似

public class ArrayListTest {

/**

* @param args

*/

public static void main(String[] args) {

ArrayListString list = new ArrayListString();

//添加

list.add("三国演义");

list.add("西游记");

list.add("水浒传");

list.add("红楼梦");

//修改

list.set(0, "三国志");

//查询某个元素是否存在

boolean flag = list.contains("西游记");

System.out.println(flag);

//删除

list.remove(2);//list.remove("水浒传");

//遍历

int size = list.size();

for ( int i=0; isize; i++)

{

String str =(String)list.get(i);//得到某个位置的元素

System.out.println(str);

}

}

}

////////////////////////下面是排序的

package list;

import java.util.ArrayList;

import java.util.Collections;

//这是关于List用法,代表性的有LinkedList,ArrayList,Vector用法类似

//排序

//Collections可以排序,还可以得到最大,最小数值,还可以将集合反转

public class SortListTest {

/**

* @param args

*/

@SuppressWarnings("unchecked")

public static void main(String[] args) {

ArrayList list = new ArrayList();

//添加

list.add(45);

list.add(67);

list.add(87);

list.add(23);

list.add(67);

Collections.sort(list);//升序

//Collections.sort(list,Collections.reverseOrder());//降序

//遍历

int size = list.size();

for ( int i=0; isize; i++ )

{

Integer str =(Integer)list.get(i);//得到某个位置的元素

System.out.println(str);

}

}

}


分享名称:list代码java,list程序
链接URL:http://cqcxhl.com/article/dssicgs.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP