详解Java中ArrayList类

ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址)

1.导入其所在包  import java.util.ArratList

2.创建对象  ArrayList<E> 对象名=new ArrayList<>(); 

E:泛型数据类型,指定对象名中存放指定类型的数据,不可省略,需为引用数据类型

3.使用  即对象名.方法(参数可能有可能无)

注意:当打印对象名时,非地址,而是一个如同python中列表一般,存放的是各个数据[元素1,元素2],若无数据,即空列表[]

4.ArrayList的常用方法

对象名.add(元素)  //向容器中添加指定数据类型的元素 返回值为boolean类型,可不用接受返回值,因为都会成功添加元素(尾部添加)

对象名.get(i)    //获得容器中下标为i的元素,返回值是容器中存储的数据类型

对象名.size()    //获得容器中元素的个数

对象名.remove(i)  //移除下标为i的元素,返回值是删除的数据元素

5.倘若想要用ArrayList存储整形,浮点形,char类型,而<E>只能为引用数据类型,如何?Java为我们将基本数据类型包装成了类,间接变成引用

int------>Integer    ArrayList<Integer> li=new Arraylist<>();//即存放整数元素

char---->Character   ArrayList<Character> li=new Arraylist<>();//即存放char元素

float--->Float,  byte--->Byte,  double--->Double,  long--->Long  //只有int和char包装类名字特殊,其余大写即可

三个Demo熟悉其使用

//随机生成数加入到容器中(Random与ArrayList)

import java.util.ArrayList;
import java.util.Random;
/*随机生成范围为[1,33]的数字加入到动态数组中*/
public class DemoArrayList {
 public static void main(String[] args) {
  Random r=new Random();
  ArrayList<Integer> list=new ArrayList<>();
  for (int i = 0; i < 6; i++) {
   list.add(r.nextInt(33)+1);
  }
  for(int i=0;i<list.size();i++){
   System.out.println(list.get(i));
  }
 }
}

//定义方法输出容器以指定格式输出{元素@元素@元素。。。元素}

import java.util.ArrayList;

//定义方法输出ArrayList以{元素@元素}格式输出
public class DemoSecond {
 public static void main(String[] args) {
  ArrayList<String> li=new ArrayList<>();
  mymethod(li);
 }
 public static void mymethod(ArrayList<String> s){
  s.add("hello");
  s.add("da");
  s.add("nhao");
  System.out.print("{");
  for(int i=0;i<s.size();i++){
   if(i==s.size()-1){
    System.out.print(s.get(i)+"}");
   }
   else
    System.out.print(s.get(i)+"@");
  }
 }
}

//将大集合中的20个随机数,其中是偶数的放入到小集合中

import java.util.ArrayList;
import java.util.Random;
//定义方法将大集合中20个随机数,其中是偶数的放入小集合中
public class DemoTest {
 public static void main(String[] args) {
  ArrayList<Integer> biglist=new ArrayList<>();
  ArrayList<Integer> smalist=new ArrayList<>();
  mythod(biglist,smalist);
 }
 public static void mythod(ArrayList<Integer> a,ArrayList<Integer> b){
  Random r=new Random();
  for (int i = 0; i < 20; i++) {
   int digit=r.nextInt(50);
   a.add(digit);
   if(a.get(i)%2==0){
    b.add(digit);
   }
  }
  System.out.println(a);
  System.out.println(b);
 }
}

以上所述是小编给大家介绍的Java中ArrayList类详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2019-03-18

Java ArrayList add(int index, E element)和set(int index, E element)两个方法的说明

一般使用List集合,估计都是使用这个ArrayList,一般呢也就是简单遍历数据和存储数据. 很少使用到add(int index, E element)和set(int index, E element)两个方法. 这两个方法,乍一看,就是在指定的位置插入一条数据. 区别: set()是更新,更新指定下标位置的值. add()是添加,区别于一般的add(E e),这个就是有个位置的概念,特殊位置之后的数据,依次往后移动就是了. 然后,看下面代码.来看看陷阱. 就算是,你知道了上面的内容,也不

java实现ArrayList根据存储对象排序功能示例

本文实例讲述了java实现ArrayList根据存储对象排序功能.分享给大家供大家参考,具体如下: 与c++中的qsort的实现极为相似,构建新的比较对象Comparator即可 package demo; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; class Stu{ public int age; private String name; public Stu(

Java ArrayList.add 的实现方法

ArrayList是平时相当常用的List实现, 其中boolean add(E e) 的实现比较直接: /** * Appends the specified element to the end of this list. * * @param e element to be appended to this list * @return <tt>true</tt> (as specified by {@link Collection#add}) */ public boole

java 集合之实现类ArrayList和LinkedList的方法

List 的方法列表 方法名 功能说明 ArrayList() 构造方法,用于创建一个空的数组列表 add(E e) 将指定的元素添加到此列表的尾部 get(int index) 返回此列表中指定位置上的元素 size() 返回此列表中的元素数 clear() 移除此列表中的所有元素 isEmpty() 如果此列表中没有元素,则返回true remove(int index) 移除此列表中指定位置上的元素 indextof(Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不

Java中Arraylist动态扩容方法详解

前言 本文主要给大家介绍了关于Java中Arraylist动态扩容的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. ArrayList 概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长.ArrayList不是线程安全的,只能用在单线程环境下.实现了Serializable接口,因此它支持序列化,能够通过序列化传输:实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问:实现了Cloneable接口,能被克隆.

Java针对ArrayList自定义排序的2种实现方法

本文实例讲述了Java针对ArrayList自定义排序的2种实现方法.分享给大家供大家参考,具体如下: Java中实现对list的自定义排序主要通过两种方式 1)让需要进行排序的对象的类实现Comparable接口,重写compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用Collections.sort()来排序对象数组 public class Student implements Comparable{ private int id; private int age; p

Java对List进行排序的两种实现方法

前言 Java.util包中的List接口继承了Collection接口,用来存放对象集合,所以对这些对象进行排序的时候,要么让对象类自己实现同类对象的比较,要么借助比较器进行比较排序. 学生实体类,包含姓名和年龄属性,比较时先按姓名升序排序,如果姓名相同则按年龄升序排序. 第一种:实体类自己实现比较 (实现comparable接口:public interface Comparable<T> ,里面就一个方法声明:public int compareTo(T o); ) 示例代码: publ

java集合类arraylist循环中删除特定元素的方法

在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java">for(int i = 0 , len= list.size();i<len;++i){ if(list.get(i)==XXX){ list.remove(i); } } 上面这种方式会抛出如下异常: Exception in thread "main" java.lang.I

java实现二叉树的创建及5种遍历方法(总结)

用java实现的数组创建二叉树以及递归先序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归中序遍历,非递归后序遍历,深度优先遍历,广度优先遍历8种遍历方式: package myTest; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Stack; public class myClass { public static void main(

Java针对封装数组的简单复杂度分析方法

本文实例讲述了Java针对封装数组的简单复杂度分析方法.分享给大家供大家参考,具体如下: 完成了数组的封装之后我们还需对其进行复杂度分析: 此处的复杂度分析主要是指时间复杂度分析,算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否. 1.简单概念 在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同,如T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂

java Lucene 中自定义排序的实现

Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在了解具体实现方法之前先来看看这两个接口的定义吧. SortComparatorSource接口的功能是返回一个用来排序ScoreDocs的comparator(Expert: returns a comparator for so

Java Clone深拷贝与浅拷贝的两种实现方法

1.首先,你要知道怎么实现克隆:实现Cloneable接口,在bean里面重写clone()方法,权限为public. 2.其次,你要大概知道什么是地址传递,什么是值传递. 3.最后,你要知道你为什么使用这个clone方法. 先看第一条,简单的克隆代码的实现.这个也就是我们在没了解清楚这个Java的clone的时候,会出现的问题. 看完代码,我再说明这个时候的问题. 先看我要克隆的学生bean的代码: package com.lxk.model; /** * 学生类:有2个属性:1,基本属性-S

JAVA中通过自定义注解进行数据验证的方法

前言 最近为了工作也为了更加深入了解掌握java注解的使用,决定自定义注解来实现数据验证. API开发中经常会遇到一些对请求数据进行验证的情况,这时候如果使用注解就有两个好处,一是验证逻辑和业务逻辑分离,代码清晰,二是验证逻辑可以轻松复用,只需要在要验证的地方加上注解就可以. Java提供了一些基本的验证注解,比如@NotNull.@Size,但是更多情况下需要自定义验证逻辑,这时候就可以自己实现一个验证注解,方法很简单,仅需要两个东西: 一个自定义的注解,并且指定验证器 一个验证器的实现 自定

编写针对IE的JS代码两种编写方法

有些时候我们需要针对某些IE下的兼容性写单独的JS处理代码.有多种做法: 1.通过检测navigation.userAgent来判断是否是IE,再编写IE分支的处理代码: 2.通过声明@cc_on 语句可以在脚本的注释内启用条件编译功能,这样对于非IE浏览器就会将识别为注释而忽略(实测,这种方式在IE6-9将适用!): 复制代码 代码如下: /*@cc_on @if (@_jscript) alert("hello world"); @end @*/

Java 数组ArrayList常用语法详解

恶补基础,记录一下数组ArrayList的常用语法 1.导入 import java.util.ArrayList; 2.定义数组list ArrayList<类名> list = new ArrayList<类名>(); 不能是基本类型,必须是类 3.获取集合大小 size() 4.存入数据 add(Object object);从下标0开始加入 add(int idx,Object object);将object插入索引为idx的位置,idx<=list.size();