java集合练习

分组练习:

List<List<Student>>  list=new ArrayList<List<Student>>();这个是二维集合,分组的时候可以在第一层循环中创建一个list,用来接收循环的时候返回的对象,然后把list添加到二维集合中

package com.hanqi;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class fenzu {
	public static void main(String[] args){
	List<Student> l=DataSourceModel.getStuList();
	List<List<Student>>  list=new ArrayList<List<Student>>();
/*int[][] i=new int[5][];

int[] a=new int[]{1,2,3};
i[3]=a;
System.out.println(i[3][1]);*/
  Random r=new Random();
  int fenzur=4;
  int zsize=13;
  for(int i=0;i<(13/fenzur);i++){
	  List<Student> li= new ArrayList<Student> ();
	  for(int j=0;j<fenzur;j++){
		  int a=r.nextInt(4);
		  li.add(l.get(a));
		  l.remove(a);
		  if(l.size()<2){
			  li.add(l.get(0));
		  }
	  }list.add(li);
	  System.out.println(li);
	  System.out.println(li.size());
  }
}
}

  

删除重复的对象就也可以用双层for循环来查找出重复的,也可以将list集合转化成set集合,因为set不可以重复,所以就将重复的自动删除了

public static void chachong(List l){
		for(int a=0;a<l.size();a++){
			int size=0;
			for(int b=0;b<l.size();b++){
				if(l.get(a).equals(l.get(b))){
					
					size++;
					if(size>1){
						l.remove(b);
					}
					
				}
			}
		}
	}
	
	public static void kaitou( List l){//j开头的名字
		for(int i=0;i<l.size();i++){
			if('J'==(l.get(i).toString().charAt(0))){//判断两个字符相等可以用==
				System.out.println(l.get(i));
			}
		}
	}
	
	public static void bnianling(List l){//比年龄
		for(int a=0;a<l.size();a++){
			if(((Student) l.get(a)).getAge()>25){//括号的student是强转成student型??
				System.out.println(l.get(a));
			}
		}
	}
}

  因为map没有直接的iterator接口,所以可以动过keyset方法获得键值,将键值赋给set集合(因为,list可以重复,而set不可以重复)或者collection集合,就可以实现iterator接口了

	Collection<Integer> c=m.keySet();
		Iterator<Integer> i=c.iterator();
	    while (i.hasNext()){
	    	int a=i.next();
	    	if(a>=1004&&a<=1009){
	    	System.out.println(a);
	    	if(a==1005){
	    		i.remove();
	    		continue;
	    	}}

  

原文地址:https://www.cnblogs.com/gaofangquan/p/7257807.html