java基础(8)-集合类

增强for循环

/*
 *增强for循环
 *	for(元素类型 变量:数据或Collection集合){
 *		使用变量即可,该变量就是元素	
 *	}
 *	优点:简化了数组和集合的遍历
 *	缺点:增强for的目标不能为null
 *	解决方法:对for的目标先进行不是null的判断,然后再使用
 */
import java.util.ArrayList;
import java.util.List;
public class ForDemo{
	public static void main(String[] args){
		int[] arr = {1,2,3,4,5};
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}

		//增强for循环
		for(int x:arr){
			System.out.println(x);
		}

		//定义字符串数组
		String[] strArray = {"wu","jia","dong"};	
		for(String s:strArray){
			System.out.println(s);
		}
		
		//定义一个集合
		ArrayList<String> array = new ArrayList<String>();
		array.add("hadoop");
		array.add("spark");	
		array.add("storm");
		for(String s : array){
			System.out.println(s);
		}

		List<String> list = null;
		//lang.NullPointerException
		//s是从list里获取的,获取前需判断
		//其实就是迭代器的功能
		if(list !=null){
			for(String s : list){
				System.out.println(s);
			}
		}

	}
}

----------------------------------------------------
输出结果
1
2
3
4
5
1
2
3
4
5
wu
jia
dong
hadoop
spark
storm
------------------------------------------------------

用ArrayList存储字符串,要求加入泛型,并用增强for遍历

import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListDemo{
	public static void main(String[] args){
		ArrayList<String> array = new ArrayList<String>();
		
		array.add("java");
		array.add("python");
		array.add("scala");

		//遍历集合
		//迭代器
		Iterator<String> it = array.iterator();
		while(it.hasNext()){
			String s = it.next();
			System.out.println(s);
		}

		System.out.println("----------------------");
		for(int i =0;i<array.size();i++){
			String s = array.get(i);
			System.out.println(s);
		}

		System.out.println("-----------------");
		for(String s : array){
			System.out.println(s);
		}

	}
}
----------------------------------------------------
输出结果
java
python
scala
----------------------
java
python
scala
-----------------
java
python
scala
----------------------------------------------------

用ArrayList存储自定义对象,要求加入泛型,并用增强for遍历

import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListDemo1{
	public static void main(String[] args){
		ArrayList<Student> array = new ArrayList<Student>();
		
		Student s1 = new Student("wu",22);
		Student s2 = new Student("jia",23);
		Student s3 = new Student("dong",24);

		array.add(s1);
		array.add(s2);
		array.add(s3);

		//迭代器遍历
		Iterator<Student> it = array.iterator();
		while(it.hasNext()){
			Student s = it.next();
			System.out.println(s.getName()+"---"+s.getAge());
		}

		//for循环遍历
		for(int i=0;i<array.size();i++){
			Student s = array.get(i);
			System.out.println(s.getName()+"---"+s.getAge());
		}

		//增强for循环
		for(Student s:array){
			System.out.println(s.getName()+"---"+s.getAge());
		}
	}
}


class Student{
	private String name;
	private int age;

	public Student(){
		super();
	}

	public Student(String name,int age){
		this.name = name;
		this.age = age;
	}

	public String getName(){
		return name;
	}

	public void setName(String name){
		this.name = name;
	}

	public int getAge(){
		return age;
	}

	public void setAge(int age){
		this.age = age;
	}	

	
}

-------------------------------------------
输出结果
wu---22
jia---23
dong---24
wu---22
jia---23
dong---24
wu---22
jia---23
dong---24
------------------------------------------------


静态导入

/*
 *静态导入
 *格式:import static 包名...类名.方法名
 *静态导入注意事项
 *方法必须是静态的;多个相同方法时需加前缀进行调用
 */
import static java.lang.Math.abs;
import static java.lang.Math.pow;
import static java.lang.Math.max;
public class StaticImportDemo{
	public static void main(String[] args){
		System.out.println(abs(-100));
		System.out.println(pow(2,3));
		System.out.println(max(20,30));
	}
}
----------------------------------------------
输出结果
100
8.0
30
---------------------------------------------

可变参数

public class ArgsDemo{
	public static void main(String[] args){
		int a=10;
		int b=10;
		int result = sum(a,b);
		System.out.println("result:"+result);

		int c = 10;
		result = sum(a,b,c);
		System.out.println("result:"+result);
		
	}
		
	public static int sum(int... a){
		//其实a是一个数组
		int s = 0;
		for(int i:a){
			s +=i;
		}
		return s;
	}
}
----------------------------------------------------
输出结果
result:20
result:30
---------------------------------------------


Arrays工具类的asList()方法

/*
 *public static <T> List<T> asList(T... a):把数组转成集合
 *但是集合的长度不能改变,原因是这个集合的本质是数组
 *
 */
import java.util.Arrays;
import java.util.List;
public class ArraysDemo{
	public static void main(String[] args){
		List<String> list = Arrays.asList("java","python","scala");//这里元素可变
		for(String s:list){
			System.out.println(s);
		}

	}
}

---------------------------
输出结果
java
python
scala
----------------------------------------

获取10个1-20之间的随机数,要求不能重复


获取10个1-20之间的随机数,要求不能重复


/*
 *获取10个1-20之间的随机数,要求不能重复
 *
 *
 *
 */
import java.util.Random;
import java.util.ArrayList;
public class RandomDemo{
	public static void main(String[] args){
		//创建产生随机数的对象
		Random r = new Random();
		//创建存储随机数的集合
		ArrayList<Integer> array = new ArrayList<Integer>();

		//int number = r.nextInt(20);生成0-20之间的随机数
		int count = 0;	
	//	array.add(number);
		while(count<10){
			//先产生一个随机数
			int number = r.nextInt(20)+1;
			if(!array.contains(number)){
				array.add(number);
				count++;//如果这个变量递增放在if外面会怎么样
			}
		}
		
		for(Integer s:array){
			System.out.println(s);
		}
	}
}




posted @ 2016-12-03 15:38  邬家栋  阅读(189)  评论(0编辑  收藏  举报