java集合类list使用_Java集合类List基本使用总结

List是有序的集合接口,该接口可以对列表中每个元素的插入位置进行精确地控制,可以根据元素的索引(List中的索引跟数组一样,都是从0开始)访问元素,可以结合Iterator接口进行列表的遍历。

示例:List的增删改查和遍历import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class ListDemo

{

public static void main(String[] args)

{

// List是接口,不能实例化

// ArrayList是List接口的实现类之一,可以实例化!

List cityList = new ArrayList();

// 增

cityList.add("广州市");

cityList.add("深圳市");

cityList.add("东莞市");

cityList.add("佛山市");

cityList.add("湛江市");

// 删

cityList.remove(4);// 以索引的方式删除元素,此处对应的是元素“湛江市”

cityList.remove("佛山市");// 以对象的方式直接删除

// 改

cityList.set(2, "珠海市");// 把“东莞市”改为“珠海市”

// 查

int index = cityList.indexOf("深圳市");

System.out.println("深圳市在广东省中排名:" + index);

// 遍历

for (Iterator cityIterator = cityList.iterator(); cityIterator.hasNext(); )

{

String cityName = cityIterator.next();

System.out.println(cityName);

}

}

}

// 打印结果:

深圳市在广东省中排名:1

广州市

深圳市

珠海市

实际的工作过程中,List通常需要结合项目的业务需求进行判断操作。假设有这样的需求场景:随机生成一定数量的数字序列(0-9)到集合List,然后统计该集合List中每个数字出现的次数!

代码实现过程如下:import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

import java.util.Random;

/**

* 分组统计List集合中数字出现的次数!

*

* @author thinker

*/

public class ListDemo2

{

public static void main(String[] args)

{

Random random = new Random();

List digitList = new ArrayList();

if (digitList.isEmpty())

{

// 此处简单展示 isEmpty方法的使用!

System.out.println("Now, List Is Empty!");

}

for (int i = 0; i 

{

digitList.add(random.nextInt(10));

}

// 此处简单展示 size方法的使用!

int size = digitList.size();

{

System.out.println("Now, List's Size:" + size);

}

List statList = new ArrayList();

for (Integer digit : digitList)

{

Digit o = new Digit();

o.setDigit(digit);

if (statList.contains(o))

{

// 通过索引获取到List集合中的对象

// 然后该对象更新数字出现的次数

// 再把该对象替换到List集合中!

int index = statList.indexOf(o);

Digit currentDigit = statList.get(index);

o.setCounter(currentDigit.getCounter() + 1);

statList.set(index, o);

}

else

{

o.setCounter(1);

statList.add(o);

}

}

// 对List集合中的数字进行升序排序!

Collections.sort(statList, new Comparator()

{

@Override

public int compare(Digit o1, Digit o2)

{

// TODO Auto-generated method stub

return o1.getDigit() - o2.getDigit();

}

});

for (Digit digit : statList)

{

Integer digitNumber = digit.getDigit();

int counter = digit.getCounter();

System.out.println("Digit[" + digitNumber + "] Occur " + counter + " times!");

}

}

private static class Digit

{

private Integer digit;// 统计的数字

private int counter;// 统计的数字出现的次数

public Integer getDigit()

{

return digit;

}

public void setDigit(Integer digit)

{

this.digit = digit;

}

public int getCounter()

{

return counter;

}

public void setCounter(int counter)

{

this.counter = counter;

}

// 如果数字相同,就判断该对象相同!

public boolean equals(Object o)

{

if (o == null) return false;

if (o instanceof Digit)

{

Digit oDigit = (Digit)o;

if (oDigit.digit == this.digit)

{

return true;

}

}

return false;

}

}

}

打印结果:

Now, List Is Empty!

Now, List's Size:60

Digit[0] Occur 3 times!

Digit[1] Occur 6 times!

Digit[2] Occur 7 times!

Digit[3] Occur 7 times!

Digit[4] Occur 8 times!

Digit[5] Occur 7 times!

Digit[6] Occur 7 times!

Digit[7] Occur 3 times!

Digit[8] Occur 7 times!

Digit[9] Occur 5 times!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值