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();

存进不同的对象要单个new,不能通过改变值后加入数组。(涉及到内存)

5.删除

remove(int idx);删除索引为idx的元素,返回该元素,可以用变量去接收,也可不接收

6.清空

clear(); 清空数组

7.替换

set(int idx,Object object); 把object元素和原本索引为idx的元素替换

8.获取指定位置元素

Object get(int idx);

9.判空

bool isEmpty(); 一般不用,size()可以用于判空

10.判断是否有某元素

bool contains(Object object); 基本不用,可以通过查找元素的索引来解决

11.查找元素的索引

int indexOf(Object object); 如果元素存在,则返回索引,否则返回-1,通过是不是-1判断元素在不在数组里

12..对数组list排序

导入Collections类;

import java.util.Collections;

(1)默认自然排序,从小到大

Collections.sort(list); //不可以new出Collections的对象,直接用

(2)自定义排序

导入Comparator类;

import java.util.Comparator;

创建对象的时候需要实现抽象方法compare(),实现自定义排序

package my_acm;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;//自定义排序
//import java.lang.Integer;//lang包中的类不用导也能直接用
public class MyTest4 {
  public static void main(String [] args) {
    ArrayList<Point> list1 = new ArrayList<Point>();
    ArrayList<Integer> list2 = new ArrayList<Integer>();
    //ArrayList<int> list3 = new ArrayList<int>();//报错,基本数据类型不能
    Comparator<Point> comparator = new Comparator<Point>() {
      public int compare(Point p1, Point p2) {
        if(p1.id!=p2.id)
          return p1.id-p2.id;
        else
        {
          if(p1.age!=p2.age)
            return p1.age-p2.age;
          else
            return 0;//不像C++,这里的if-else需要匹配
        }
      }
    };
    Point p1 = new Point();
    p1.id=11;p1.age=21;
    list1.add(p1);
    Point p2 = new Point();
    p2.id=9;p2.age=44;
    list1.add(p2);
    Point p3 = new Point();
    p3.id=2;p3.age=68;
    list1.add(p3);

    /** 修改变量的值在加到数组里是不可行的,(
    p3.id=14;p3.age=23;
    list1.add(p3);
    */
    for(int i=0;i<list1.size();i++) {
      System.out.println( "i="+i+" id="+list1.get(i).id+" age="+list1.get(i).age);
    }
    Collections.sort(list1,comparator);
    System.out.println("按id排序后");

    for(int i=0;i<list1.size();i++) {
      Point x = new Point();
      x=list1.get(i);
      System.out.println( "i="+i+" id="+x.id+" age="+x.age );
    }
  }
}
class Point{
  int id;
  int age;
}

输出结果:

i=0 id=11 age=21
i=1 id=9 age=44
i=2 id=2 age=68

按id排序后

i=0 id=2 age=68
i=1 id=9 age=44
i=2 id=11 age=21

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java ArrayList集合中的某个对象属性进行排序的实现代码

    开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教. 1.Student的Bean如下: public class Student { private int age; private String name; private String weight; public String getWeight() { return weight; } public void setWeight(String weight) { th

  • JAVA ArrayList详细介绍(示例)

    第1部分 ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口.ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能.ArrayList 实现了RandmoAccess接口,即提供了随机访问功能.Randmo

  • 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的removeAll方法详解

    本文介绍的是关于Java中ArrayList的removeAll方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现), List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据 List<Integer> hasAnyTagRiderId = new ArrayList(); // 有标签

  • JAVA LinkedList和ArrayList的使用及性能分析

    第1部分 List概括List的框架图List 是一个接口,它继承于Collection的接口.它代表着有序的队列.AbstractList 是一个抽象类,它继承于AbstractCollection.AbstractList实现List接口中除size().get(int location)之外的函数.AbstractSequentialList 是一个抽象类,它继承于AbstractList.AbstractSequentialList 实现了"链表中,根据index索引值操作链表的全部函数

  • java中申请不定长度数组ArrayList的方法

    如下所示: import java.util.ArrayList; //java中申请不定长度数组 public class Test01 { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList list=new ArrayList(); list.add("123"); list.add("5"); list.add("5")

  • java ArrayList按照同一属性进行分组

    java ArrayList按照同一属性进行分组 前言: 通常使用SQL查询一批数据的时候,可以利用SQL中的GROUP BY语句对数据进行分组,但是有时候出于对性能的考虑,不会使用GROUP BY,而是先把数据捞出来后,使用代码,在内存中按照某个属性进行分组. 代码 public class SkuVo { private Long skuId; private String productName; private Long brandStoreSn; public SkuVo(Long s

  • 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 数组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();

  • java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等)

    数组算法例题 1.数组逆序 第一个和最后一个互换,第二个和倒数第二个互换,就相当于把数组想下图一样,进行对折互换,如果数组个数为奇数,则中间保持不变其余元素互换即可 import java.util.Arrays; class Demo12 { public static void main (String[] args) { int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; System.out.println(Arrays.toString(arr));

  • java多线程JUC常用辅助类详解

    1.countDownLatch 减法计数器:实现调用几次线程后,在触发另一个任务 简单代码实现: 举例说明:就像五个人在同一房间里,有一个看门的大爷,当五个人都出去后,他才能锁门,也就是说 执行5次出门这个动作的线程后,才出发了锁门的这个动作 import java.util.concurrent.CountDownLatch; /** * @program: juc * @description * @author: 不会编程的派大星 * @create: 2021-04-24 16:55

  • javascript的数组和常用函数详解

    1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象.Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能. 1.1 定义数组 声明有10个元素的数组: 复制代码 代码如下: var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,例如 a[2] 但此时元素并未初始化,调用将返回 undefined.以下代码定义了个可变数组,并

  • Java中对List集合的常用操作详解

    目录: 1.list中添加,获取,删除元素: 2.list中是否包含某个元素: 3.list中根据索引将元素数值改变(替换): 4.list中查看(判断)元素的索引: 5.根据元素索引位置进行的判断: 6.利用list中索引位置重新生成一个新的list(截取集合): 7.对比两个list中的所有元素: 8.判断list是否为空: 9.返回Iterator集合对象: 10.将集合转换为字符串: 11.将集合转换为数组: 12.集合类型转换: 备注:内容中代码具有关联性. 1.list中添加,获取,

  • Java集合框架之List ArrayList LinkedList使用详解刨析

    目录 1. List 1.1 List 的常见方法 1.2 代码示例 2. ArrayList 2.1 介绍 2.2 ArrayList 的构造方法 2.3 ArrayList 底层数组的大小 3. LinkedList 3.1 介绍 3.2 LinkedList 的构造方法 4. 练习题 5. 扑克牌小游戏 1. List 1.1 List 的常见方法 方法 描述 boolean add(E e) 尾插 e void add(int index, E element) 将 e 插入到 inde

  • Python学习之12个常用基础语法详解

    目录 前言 1.多个字符串组合为一个字符串 2.字符串拆分为子字符串列表 3.统计列表中元素的次数 4.使用try-except-else-block模块 5.使用枚举函数得到key/value对 6.检查对象的内存使用情况 7.合并字典 8.计算执行一段代码所花费的时间 9.列表展开 10.列表采样 11.数字化 12.检查列表元素的唯一性 前言 前几天写了一篇关于python高级语法的文章:python进阶从青铜到王者一定会用上的Python技巧. 有读者私信说:怎么看自己是不是入门pyth

  • Java中的zookeeper常用命令详解

    目录 1.zkCli.sh客户端 2.多节点类型创建 3.查询节点 4.set数据 5.删除节点 6.权限设置 7.其他命令 注意我这里用的是官方最稳定的版本3.7.1,版本之间有个别命令是有差距的! 1.zkCli.sh客户端 zkCli.sh可以理解成客户端,也可以理解成命令行工具,把命令交给他,让他和zk的服务端打交道.类似于mysql,我们安装完mysql想要执行命令,那么就必须要通过mysql -u账号 -p密码进入命令行工具里面,才能执行sql. 在zookeeper/bin 目录下

  • Java Collections类操作集合详解

    Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类.Collections 类提供了许多操作集合的静态方法,借助这些静态方法可以实现集合元素的排序.查找替换和复制等操作.下面介绍 Collections 类中操作集合的常用方法. 1) 排序(Sort)     使用sort方法可以根据元素的自然顺序,对指定列表进行排序.列表中的所有元素都必须实现 Comparable 接口.或此列表内的所有元素都必须是使用指定比较器可相互比较的   Collec

  • Java之Jackson使用案例详解

    序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象. Json是什么? Jason是 JavaScript Object Notation-  JavaScript对象表示法,是一种轻量级数据交换格式.主要用于数据传输,比如说在后端写了一个Java对象,想在其他地方(前端)使用这个对象,就需要转换为Json这种形式进行传输. 1.

随机推荐