精华内容
下载资源
问答
  • java中ArrayList

    2011-02-14 17:23:00
    ,特别是在ArrayList前端插入或删除对象时,其内部数组的后边对象要依次挪位,代价比较大。就比较慢 (使用LinkedList在这个方面比较好)。   数组和数组列表之间有着很大的区别。数组是Java

    ArrayList类实现了List接口,List接口是Collection接口的子接口,主要增加了根据索引取得对象的方法。

     

    ArrayList使用数组实现List接口,所以对于快速随即取得对象来说,可以得到很好的效能。不过在删除对象或插入对象时特别是在ArrayList前端插入或删除对象时,其内部数组中的后边对象要依次挪位,代价比较大。就比较慢 (使用LinkedList在这个方面比较好)。

     

    数组和数组列表之间有着很大的区别。数组是Java语言的一个特征,对于每个元素类型T,都有数组类型T[];然而,ArrayList类是个定义 java.util包中的类库,这是一个存放object类型元素的"普通性"的类型。注意,要从数组列表中提取元素时,需要进行类型转换。

     

    add()方法可以向数组列表中添加新元素:

    List list=new ArrayList();

    list.add(new Element(......));

    list.add(new Element(......));

    ArrayList类管理了一个Object引用的内部数组,而且可能会用完数组的空间。如果调用了add,而内部数组已经满了,数组列表将自动创建了一个更大的数组,并自动把小数组中的对象拷贝到大数组中。

     

    set()方法可以设置数组列表中的元素值:

     list.set(i,new Element(......));

     

    get()方法可以得到数组列表的元素,返回的类型是object。

    Element e=(Element)list.get(i);

     

    size()方法可以得到当前ArrayList的长度。

    list.size();

    展开全文
  • 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据1.使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:删除重复数据...

    以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据

    1.使用LinkedHashSet删除arraylist中的重复数据

    LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:

    • 删除重复数据
    • 保持添加到其中的数据的顺序

    Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。

    例如1,3和5.我们将列表添加到LinkedHashSet,然后将内容返回到列表中。结果arraylist没有重复的整数。

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.LinkedHashSet;
     
    public class ArrayListExample
     
    {
        public static void main(String[] args)
     
        {
     
            ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
     
            System.out.println(numbersList);
     
            LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList);
     
            ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(hashSet);
     
            System.out.println(listWithoutDuplicates);
     
        }
     
    }

    输出结果

    [1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]
     
    [1, 2, 3, 4, 5, 6, 7, 8]

    2.使用java8新特性stream进行List去重

    要从arraylist中删除重复项,我们也可以使用java 8 stream api。使用steam的distinct()方法返回一个由不同数据组成的流,通过对象的equals()方法进行比较。

    收集所有区域数据List使用Collectors.toList()。

    Java程序,用于在不使用Set的情况下从java中的arraylist中删除重复项。

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;
     
    public class ArrayListExample
    {
        public static void main(String[] args)
     
        {
     
            ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
            System.out.println(numbersList);
            List<Integer> listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList());
     
            System.out.println(listWithoutDuplicates);
     
        }
     
    }

    输出结果

    [1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]
     
    [1, 2, 3, 4, 5, 6, 7, 8]

    3.利用HashSet不能添加重复数据的特性 由于HashSet不能保证添加顺序,所以只能作为判断条件保证顺序:

    private static void removeDuplicate(List<String> list) {
        HashSet<String> set = new HashSet<String>(list.size());
        List<String> result = new ArrayList<String>(list.size());
        for (String str : list) {
            if (set.add(str)) {
                result.add(str);
            }
        }
        list.clear();
        list.addAll(result);
    }

    4.利用List的contains方法循环遍历,重新排序,只添加一次数据,避免重复:

    private static void removeDuplicate(List<String> list) {
        List<String> result = new ArrayList<String>(list.size());
        for (String str : list) {
            if (!result.contains(str)) {
                result.add(str);
            }
        }
        list.clear();
        list.addAll(result);
    }

    5.双重for循环去重

    for (int i = 0; i < list.size(); i++) { 
    for (int j = 0; j < list.size(); j++) { 
    if(i!=j&&list.get(i)==list.get(j)) { 
    list.remove(list.get(j)); 
     } 

    展开全文
  • Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一、ArrayList转换数组 public static void arrayListToArray() { // ArrayList转换数组 List<String> arraylist = new ...

    Java中ArrayList和数组之间的相互转换

    • ArrayList转为数组
    • 数组转为ArrayList

    一、ArrayList转换数组

    public static void arrayListToArray() {
    		// ArrayList转换数组
    		List<String> arraylist = new ArrayList<String>();
    		arraylist.add("java");
    		arraylist.add("c++");
    		arraylist.add("python");
    		// 转换
    		String[] arr = arraylist.toArray(new String[arraylist.size()]);
    		
    		// 打印
    		for(int i=0;i<arr.length;i++) {
    			System.out.println(arr[i]);
    		}
    	}
    

    二、数组转为ArrayList

    第一种方法:

    public static void arrayToArrayList() {
    		// 数组转arraylist
    		String[] arr = new String[]{"java","c++","python"};
    		// 转换
    		List<String> list = Arrays.asList(arr);
    		System.out.println(list.toString());
    	}
    

    但该方法返回的arraylist不能进行添加或删除列表中的元素,因为返回的列表不是java.util.ArrayList。而是java.util.Arrays中的一个私有静态类。

    第二个方法:

    public static void arrayToArrayList_2() {
    		// 数组转arraylist
    		String[] arr = new String[]{"java","c++","python"};
    		// 转换
    		List<String> list = new ArrayList<String>(Arrays.asList(arr));
    		System.out.println(list.toString());
    	}
    
    展开全文
  • Java中ArrayList的用法

    2016-11-21 19:05:15
    Java中ArrayList可以看作是一个容器,有点类似与C++STL中的动态数组,23333 首先要导入  import java.util.ArrayList; ArrayList的定义:  ArrayList name = new ArrayList(size);  其中Type为对象类型...

    在Java中ArrayList可以看作是一个容器,有点类似与C++STL中的动态数组,23333

    首先要导入

           import java.util.ArrayList;

    ArrayList的定义:

           ArrayList<Type> name = new ArrayList<Type>(size);

                  其中Type为对象类型,也可以是简单类型的包装类,例如int的包装类就是Integer。。。

                  name就是自己给ArrayList起的名字了

                  其中size就是定义的数组的大小,虽然动态数组是可以扩展的,但是默认的大小是16,不够的话还要再申请内存。为了节省时间,兼顾内存,最好是写上大小,当然了,不写也是没有错误的。


    ArrayList中常用的方法:

                    //添加元素
    		list.add("A");        //将一个元素插入数组
    		list.add(1, "B");       //在索引为1处插入一个元素
    		list1.add("D");          
    		list.addAll(list1);          //将list1全部插入到list的末尾
    		list.addAll(1, list1);       //在索引为1处插入list1
    		
    		//移除元素
    		list.remove("A");             //移除一个值为“A”的元素
    		list.remove(1);              //移除索引为1的元素
    	    
    		//查找元素
    		list.contains("A");         //返回值为boolean,查找数组中是否存在“A”元素
    		list.indexOf("A");            //返回元素“A”第一次出现的位置,没有则返回-1
    		list.lastIndexOf("A");           //返回元素“A”最后一次出现的位置,没有则返回-1
    		
    		//其他
    		list1.clear();         //将数组中的元素全部清空
    		list.isEmpty();             //返回值为boolean,询问数组是否为空
    		


           

    展开全文
  • Java中ArrayList与LinkList比较

    千次阅读 2019-04-08 11:39:14
    简单对Java中ArrayList和LinkList进行比较,本文没有代码,纯粹通过自己的学习纯理论地记录下自己对这两个我们在java常用的List的理解进行总结 首先看着两者的数据结构图示: 比较详细的比较认识:增删改查效率比较...
  • java中ArrayList和LinkList的区别

    千次阅读 2019-07-09 15:39:27
    java中ArrayList和LinkList的区别 1.首先我们说下ArrayList和LinkList各是基于什么原理实现的? 答:ArrayList底层是数组结构,LinkList底层是链表结构。我们来说一下数组与链表的区别: 1.数组的定义:是相同数据...
  • Java 中ArrayList的线程安全问题

    千次阅读 2019-03-25 10:33:32
    Java 中ArrayList的线程安全问题 慕雪92620662018-07-15 10:09:17 有两个线程操作一个ArrayList A线程会执行list.clear(); B线程会执行 if(!list.isEmpty()){ list.get(list.size() - 1).xxx(); } 如果B...
  • Java中ArrayList集合

    千次阅读 多人点赞 2019-06-04 15:42:38
    ArrayList集合是程序最常见的一种集合,属于引用类型,在AyyayList内部封装了一个长度可变的数组,当存储元素超过数组长度时,ArrayList会在内存分配一个更大的数组来存储这些元素,可以看做ArrayList是一个长度...
  • Java中ArrayList的使用

    万次阅读 多人点赞 2018-08-06 13:51:12
    ArrayList类是一个特殊的数组--动态数组。来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。 优点: 1、支持自动改变大小 2、可以灵活的插入元素 3、可以灵活的删除元素 局限:...
  • Java中ArrayList和LinkedList区别

    千次阅读 2015-04-14 13:24:05
    Java中ArrayList和LinkedList区别 副标题:什么时候应该用ArrayList什么时候又该用LinkedList呢?ArrayList和LinkedList在性能上有什么差别呢?ArrayList和LinkedList的数据结构有什么区别呢? 一、用...
  • Java中ArrayList和 LinkedList区别 Java中ArrayList和LinkedList区 别 关键字: java arraylist linkedlist 区别 一般大家都知道ArrayList和LinkedList的大致区别:  1.ArrayList是实现了基于动态数组的数据...
  • java中ArrayList(基础)

    2020-10-27 15:01:00
    java中ArrayList基础 ArrayListArrayList是集合中的一种, 集合是存储空间可变的存储模型,存储数据的容量可发生改变。 ArrayList的特点: 底层是数组是想的, 长度可以改变。 (数组的长度不可改变) 泛型: ...
  • java中ArrayList相加

    千次阅读 2019-02-20 17:57:28
    ArrayList&lt;Integer&gt; arr_group1=map_clusterGroup.get(id1); ArrayList&lt;Integer&gt; arr_group2=map_clusterGroup.get(id2); arr_group1.addAll(arr_group2);  
  • Java中ArrayList和LinkedList区别以及时间复杂度与空间复杂度?一.时间复杂度二.空间复杂度三.总结  一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList...
  • Java中ArrayList循环遍历并删除元素的陷阱
  • Java中arraylist和linkedlist源码分析与性能比较 1,简介 在java开发中比较常用的数据结构是arraylist和linkedlist,本文主要从源码角度分析arraylist和linkedlist的性能。 2,arraylist源码分析   Arraylist...
  • java中Arraylist复制方法

    千次阅读 2019-04-11 14:01:40
    转自... 方法一: ArrayList<Integer> mycopy=new ArrayList<Integer>(); mycopy=(ArrayList<Integer>) vec.clone(); 方法二: ArrayList<Integer&g...
  • java中ArrayList集合

    千次阅读 2018-05-06 18:29:25
    数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的...ArrayList集合是程序最常见的一种集合,它属于引用数据类型(类)。在...
  • java中ArrayList的使用

    2015-07-21 08:57:05
    java学习ArrayList学习
  • 排序是一种非常常用的操作,普通数组的排序...import java.util.Collections; public class test { public static void main(String[] args) { ArrayList<Integer> a = new ArrayList<Integer>(); f
  • ArrayList a = new ArrayList(); ArrayList b= new ArrayList(); b= a; // 错误做法 这样是不行的。 因为这样只是复制一个pointer。 b=a是将b的地址值指向a,而b原先的对象会被垃圾回收。但是在这里我想告诉你的是...
  • [Java]Java中ArrayList的常见用法

    千次阅读 2019-08-25 15:24:37
    List是Java中比较常用的集合类,List 是一个接口,它继承于Collection的接口。它代表着有序的队列。 1. List实例化 /* 实例化List */ List<String> lists = new ArrayList<String>(); 2. 添加...
  • java中ArrayList 、LinkList、List区别

    千次阅读 2012-03-02 13:53:45
    java中ArrayList 、LinkList区别 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。  3
  • Java中ArrayList与String 转换

    千次阅读 2019-04-13 10:32:20
    在应用开发需要将ArrayList进行保存,可以将其序列化成String后进行保存,并可以反序列化读出: /** * 把ArrayList序列化成String * @param list * @return */ public static String List2String(List<...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,091
精华内容 14,836
关键字:

java中arraylist

java 订阅