java ArrayList的用法
7个回答
展开全部
import java.util.ArrayList;
import java.util.Iterator;
public class Demo {
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
System.out.println("list中添加了a,b,c三个元素");
Iterator it = list.iterator();
System.out.print("遍历list得到的结果:");
while(it.hasNext()){
System.out.print(it.next() + ",");
}
System.out.println();
list.clear();
System.out.println("已经移除了list中的所有元素");
}
}
ArrayList类:
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
Map接口:
请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
import java.util.Iterator;
public class Demo {
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
System.out.println("list中添加了a,b,c三个元素");
Iterator it = list.iterator();
System.out.print("遍历list得到的结果:");
while(it.hasNext()){
System.out.print(it.next() + ",");
}
System.out.println();
list.clear();
System.out.println("已经移除了list中的所有元素");
}
}
ArrayList类:
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
Map接口:
请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
展开全部
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
package www.liliang.com;
import java.util.ArrayList;
import java.util.Iterator;
public class ArraylistDemo {
public static void main(String[] args) {
// 创建ArrayList集合对象
ArrayList arrayList = new ArrayList();
// 添加person类型的对象
Person person1 = new Person("liliang", 29);
Person person2 = new Person("lisi", 31);
arrayList.add(person1);
arrayList.add(person2);
arrayList.add(new Person("lijian", 28));
// 取出元素
for (Iterator iterator = arrayList.iterator(); iterator.hasNext();) {
// Object object = (Object) iterator.next();这里要注意,取出的都是object类型
Person person = (Person) iterator.next();// 这里需要向下转型为person类,不能是object.
System.out.println(person.getName() + "" + person.getAge());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
-----------构造方法摘要
ArrayList()
构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extends E> c)
构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
-----------set()不是构造方法
set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
--顺便问下如果第二个删了,第三个会不会代替第二个的位置,arraylist的长度会不会减少?
-----------会的
removeRange(int fromIndex, int toIndex)
移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
示例代码如下:
import java.util.ArrayList;
public class Temp {
public static void main(String[] args){
ArrayList al = new ArrayList(11);
for(int i=0;i<10;i++){
al.add("string"+(i+1));
}
printList(al);
System.out.println("//insert one element");
//1为你指定的位置
al.add(1,"stringinsert");
printList(al);
System.out.println("//remove one element");
al.remove(1);
printList(al);
}
public static void printList(ArrayList al){//输出ArrayList的方法
System.out.print("current list:|");
for(int i=0;i<al.size();i++){
System.out.print(al.get(i)+" ");
}
System.out.println("|");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.添加元素 add(E e) 将指定的元素添加到此列表的尾部
2.遍历这个ArrayList 两种方法:
1. ArrayList arrayList=new ArrayList();
Iterator it=arrayList.iterator();
while(it.hasNext()){
it.next();
// .........
}
2. for(int i=0;i <arrayList.size();i++){
arrayList.get(i);
// .........
}
3.移除元素 remove(int index)移除此列表中指定位置上的元素。
4.Hashmap是一个Map接口的具体实现,可以支持键值的映射
ArrayList是一个List接口的具体实现,只是一个链表
2.遍历这个ArrayList 两种方法:
1. ArrayList arrayList=new ArrayList();
Iterator it=arrayList.iterator();
while(it.hasNext()){
it.next();
// .........
}
2. for(int i=0;i <arrayList.size();i++){
arrayList.get(i);
// .........
}
3.移除元素 remove(int index)移除此列表中指定位置上的元素。
4.Hashmap是一个Map接口的具体实现,可以支持键值的映射
ArrayList是一个List接口的具体实现,只是一个链表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
针对你的4个问题进行回答(我也是初学,仅供参考)
1.ArrayList 继承于 List //主要作用于添加,删除,修改(个人理解),所以第一个,肯定OK。。
2.List中还有一个叫LinkedList的,如果我们要访问的话,就用ArrayList,因为数据大的话,用ArrayList访问起来,速度较快。
3.正如我前面所说List中还有一个叫LinkedList,它就是用来移除或增加元素的,很明显,它增删速度要快些,
4.HaspMap继承与Map ...
我的总结是:ArrayList 读快改慢, LinkedList 读慢改快
HashMap,呵呵,自己看看吧。
1.ArrayList 继承于 List //主要作用于添加,删除,修改(个人理解),所以第一个,肯定OK。。
2.List中还有一个叫LinkedList的,如果我们要访问的话,就用ArrayList,因为数据大的话,用ArrayList访问起来,速度较快。
3.正如我前面所说List中还有一个叫LinkedList,它就是用来移除或增加元素的,很明显,它增删速度要快些,
4.HaspMap继承与Map ...
我的总结是:ArrayList 读快改慢, LinkedList 读慢改快
HashMap,呵呵,自己看看吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询