java集合类list使用_List集合类方法的使用

Java代码 收藏代码

import java.util.ArrayList;

import java.util.Iterator;

import java.util.LinkedList;

//import java.awt.List;

import java.util.List; //当出现下面的错误时,是因为少了这句,多了上面注释的一句,请看仔细

//The type List is not generic; it cannot be parameterized with arguments

public class TestList {

public static void main(String args[]){

List l = new ArrayList();// 利用ArrayList类实例化List集合

List l2 = new LinkedList();// 利用LinkedList类实例化List集合

//add(int index, Object obj)方法和set(int index, Object obj)方法的区别

String a = "A", b = "B", c = "C", d = "D", e = "E";

List list = new LinkedList(); //LinkedList 链式 相当于下表从0开始的

list.add(a); //add()方法

list.add(e);

list.add(d);

list.set(1, b); // 将索引位置为1的对象e修改为对象b

list.add(2, c); // 将对象c添加到索引位置为2的位置

Iterator it = list.iterator(); //遍历时的方式*****方法1

while (it.hasNext()) {

System.out.println(it.next());

}

for(int i = 0; i < list.size(); i++) { //遍历时的方式*****方法2

System.out.println(list.get(i)); // 利用get(int index)方法获得指定索引位置的对象

}

//indexOf(Object obj)方法和lastIndexOf(Object obj)方法的区别

System.out.println("开始:");

String aa = "A", bb = "B", cc = "C", dd = "D", repeat = "Repeat";

List list2 = new ArrayList();

list2.add(aa); // 索引位置为 0

list2.add(repeat); // 索引位置为 1

list2.add(bb); // 索引位置为 2

list2.add(repeat); // 索引位置为 3

list2.add(cc); // 索引位置为 4

list2.add(repeat); // 索引位置为 5

list2.add(dd); // 索引位置为 6

System.out.println(list2.indexOf(repeat));

System.out.println(list2.lastIndexOf(repeat));

System.out.println(list2.indexOf(bb));

System.out.println(list2.lastIndexOf(bb));

System.out.println("结束!");

//subList(int fromIndex, int toIndex)方法

//在使用subList(int fromIndex, int toIndex)方法截取现有List集合中的部分对象生成新的List集合时,

//需要注意的是,新生成的集合中包含起始索引位置代表的对象,但是不包含终止索引位置代表的对象

// list a b c d e

list = list.subList(1, 3);// 利用从索引位置 1 到 3 的对象重新生成一个List集合

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

System.out.println(list.get(i));

}

List list22 = new LinkedList();

list22 = list.subList(0,1); //b

list22.add(aa);

list22.add("zhang");

list22.add("guang"); //此时 list22 为 B A zhang guang

list22.set(0, a);

list22.set(1, b); //此时 list22 为 A B zhang guang

for (int i = 0; i < list22.size(); i++) {

System.out.println(list22.get(i));

}

System.out.println("*********************************");

List list33 = new LinkedList();

list33=list22.subList(1, 3);

list22.addAll(list33); //整体加list时要用addAll()方法

for (int i = 0; i < list22.size(); i++) {

System.out.print(list22.get(i)+"\t."); //get()方法

}

// list33.clear();

// for (int i = 0; i < list33.size(); i++) {

// System.out.println(list33.get(i));

// }

System.out.println(list22.contains(a)); // contains()方法

//System.out.println(list22.containsAll(list33)); // containsAll()方法

list22.remove(0);

for (int i = 0; i < list22.size(); i++) {

System.out.print(list22.get(i)+"\t."); //get()方法

}

System.out.println("\n"+list22.size()); //size()

Object[] str = list22.toArray(); //toArray()方法 为Object类型

for(int i=0;i

System.out.print(str[i]+"\t");

}

System.out.println("\n"+list22+"\t"); //请看直接输出的格式!!!!

//run:[B, zhang, guang, B, zhang]

//System.out.println(list33+"\t");

}

}

遍历List集合的三种方法

List list = new ArrayList();

list.add("aaa");

list.add("bbb");

list.add("ccc");

方法一:

超级for循环遍历

for(String attribute : list) {

System.out.println(attribute);

}

方法二:

对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历:

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

system.out.println(list.get(i));

}

方法三:

集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代

Iterator it = list.iterator();

while(it.hasNext()) {

System.ou.println(it.next);

}

例子:

package package1;

import java.util.ArrayList;

import java.util.List;

import java.util.ListIterator;

public class demo2 {

public static void main(String[] args) {

//定义数组

String[] str= {"hello你好","喂,你好","哈哈哈哈"};

//定义集合

List list=new ArrayList();

//把数组添加在集合中

for(int i=0;i

list.add(str[i]);

}

//遍历集合

ListIterator iterator=list.listIterator();

while (iterator.hasNext()) {

System.out.println(iterator.next());

}

System.out.println("-------反向迭代--------");

while (iterator.hasPrevious()) {

System.out.println(iterator.previous());

}

}

}

结果:

hello你好

喂,你好

哈哈哈哈

-------反向迭代--------

哈哈哈哈

喂,你好

hello你好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值