API之集合

List集合

*List集合,通常是有序集
特点是可以根据下标操作元素

List<String> list = new ArrayList<String>();
		list.add("one");
		list.add("two");
		list.add("three");
		list.add("four");
		/*
		 * T get(int index)
		 * 获取给定下标所对应元素
		 */
		String str = list.get(2);
		System.out.println(str);
		/*
		 * List集合可以通过下标遍历的方法遍历每个元素
		 */
		for(int i = 0;i<list.size();i++){
			str = list.get(i);
			System.out.println(str);
		}
		/*
		 * T set(int index, T t)
		 * 将给定的元素设置到给定的位置上
		 * 返回值为原位置上的元素
		 * 所以该方法是替换元素的操作,注意不能下标越界
		 */
		System.out.println(list);
		String old = list.set(1, "2");
		System.out.println(list);
		System.out.println("被替换的元素:"+old);

List集合的方法插入与删除

List<String> list = new ArrayList<String>();
		list.add("one");
		list.add("two");
		list.add("three");
		/*
		 * void add(int index,T t)
		 * 将给定的元素添加到指定的位置上
		 * 原位置以及后续的元素顺序向后移动
		 * 插入操作
		 */
		System.out.println(list);
		list.add(1, "2");
		System.out.println(list);
		
		
		/*
		 * E remove(int index)
		 * 删除给定位置上的元素
		 * 返回值为被删除的元素
		 */
		String remove = list.remove(2);
		System.out.println(list);
		System.out.println("被删除的是"+remove);

List方法获取子集

List<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<10;i++){
		list.add(i);
		}
		System.out.println(list);
		/*
		 * List subList(int start,int end)
		 * 获取当前集合中的子集
		 */
		List<Integer> subList = list.subList(3, 8);
		System.out.println(subList);
		/*
		 * 将子集的元素扩大十倍
		 */
		for(int i = 0;i<subList.size();i++){
			subList.set(i,subList.get(i)*10);
		}
		System.out.println(subList);
		/*
		 * 修改子集元素会影响原集合
		 */
		System.out.println(list);

集合的排序

List<Integer> c = new ArrayList<Integer>();
		Random random = new Random();
		for(int i=0;i<10;i++){
			c.add(random.nextInt(100));
		}
		System.out.println(c);
		/*
		 * 通过Collections这个集合的工具类
		 * 我们可以对List集合进行自然排序
		 */
		Collections.sort(c);;
		System.out.println(c);

Comparable接口

public static void main(String[] args) {
		List<Cell> list = new ArrayList<Cell>();
		list.add(new Cell(4,5));
		list.add(new Cell(1,7));
		list.add(new Cell(1,2));
		list.add(new Cell(3,3));
		System.out.println(list);
		/*
		 * 使用Collection的sort方法进行排序的
		 * 集合,要求元素必须实现Comparable接口
		 * 只有实现了该接口才认为是可比较的元素
		 */
		Collections.sort(list);
		System.out.println(list);//自然大小排列

	}

Cell

public class Cell implements Comparable<Cell> {
	int x;
	private int y;
	public Cell(int x,int y){
		this.x = x;
		this.y = y;
	}
	//重写equals
	public boolean equals(Object obj){
		if(this == obj){
			return true;
		}
		if(obj == null){
			return false;
		}
		if(obj instanceof Cell){
			Cell c = (Cell) obj;
			return this.x == c.x&&this.y == c.y;
		}
		return false;
	}
	public String toString(){
		return "Cell [x=" + x + ",y=" + y + "]";
				
	}
	
	/*
	 * 比较大小的方法
	 * 返回值不关注具体的值,只关注取值范围
	 * 返回值<0;当前随想比给定对象小
	 * 返回值=0;两对象相等
	 * 返回值>0;当前对象比给定对象大
	 */
	public int compareTo(Cell o) {
		/*
		 * 比较规则如下:
		 * y值大的大
		 */
		return this.y-o.y;
	}

当集合已经实现了Comparable接口,并且实现了比较规则时,但是该比较规则不能满足我们对于排序需求时我们可以额外的定一个比较规则。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortCollection3 {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("张三擦擦手");
		list.add("张三爱疯舞使得");
		list.add("张三");
		list.add("张三叉叉");
		
		
		System.out.println(list);
		Collections.sort(list);
		System.out.println(list);
		
		

	}

}
/*
 * 当集合已经实现了Comparable接口,并且实现了
 * 比较规则时,但是该比较规则不能满足我们对于排序需求时
 * 我们可以额外的定一个比较规则
 */
class MyComparator implements Comparator<String>{
	/*
	 * 自定义比较字符串规则,字符串字符多大
	 */
	public int compare(String o1,String o2){
		return o1.length()-o2.length();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值