java list<T>增加元素?

java list<T>增加元素?,第1张

List<User> userList =new ArrayList<User>()

User user = new User()

User user1 = new User()

userList.add(user)

userList.add(user1)

同:三个类都是实现了List接口,存储数据的特点相同:存储有序的、可重复的数据

异:

ArrayList:是用的最多得,线程不安全所以效率高。底层使用Object[] elementData数组存储

LinkedList:对于平凡的插入、删除 *** 作效率更高,因为底层是双向链表(ArrayList的话要一个个移,但是查找多还是

ArrayList好)

Vector:1.0的时候出的古老实现类,其他包括List本身都是1.2出的;线程安全效率慢,其他和ArrayList差不多底层也是数组。接班不用

ArrayList:

jdk7.0的时候:

ArrayList list = new ArrayList()// 底层创建了长度是10的数组

当添加的元素数量超过数组容量了就扩容, 默认情况下扩容1.5倍 ,并复制到新数组里。(和StringBuilder很像)

建议开发中使用带参数的构造器:

new ArrayList(int capacity)

jdk8.0的时候:

new ArrayList()//底层初始化为{},第一次add时才创建长度为10的数组,其他一样

好处:延迟数组的创建,节省内存

Vector:

如果没给capacity一开始也初始化长度为10的数组(类ArrayList7.0),但是扩容的时候扩为原来的2倍

Linked list = new LinkedList()//内部声明了Node类型的first和last属性,默认值为null

list.add(“something”)//创建node并将数据装到node里

其中Node定义为:

//是linkedlist的一个内部类

private static class Node<E>{

E item;//数据

Node<E>next

Node<E>prev

Node(Node<E>prev,Node<E>next,Node<E>next){

this.item = element

this.next = next

this,prev = prev

}

}

List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来 *** 作集合元素的方法。

void add(int index, Object ele):在index位置插入ele元素

boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来

Object get(int index):获取指定index位置的元素

int indexOf(Object obj):返回obj在集合中首次出现的位置,找不到就-1

int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置,找不到就-1

Object remove(int index):移除指定index位置的元素,并返回此元素

Object set(int index, Object ele):设置指定index位置的元素为ele

List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合

总结常用方法:

增:add(Object)

删:remove(Object)/remove(index)

改:set(index,Object)

查:get(index)

插入:add(index,Object)

长度:size()

遍历:

1.iterator

 2.for(Object o : list)

 3.for(int i =0i<list.size()i++)

直接用 b.contains(a) 就可以啊,不用循环判断的。 String a = "31"

List<String>b = new ArrayList<String>()

b.add("1")

b.add("2")

b.add("3")

b.add("4")

b.add("5")

b.add("6")

b.add("7")

b.add("8")

System.out.println(b.contains(a))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11735119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存