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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |