java基础(8)-集合类

浏览: 1113

增强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 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 array = new ArrayList();
array.add("hadoop");
array.add("spark");
array.add("storm");
for(String s : array){
System.out.println(s);
}

List 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 array = new ArrayList();

array.add("java");
array.add("python");
array.add("scala");

//遍历集合
//迭代器
Iterator 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 array = new ArrayList();

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 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 List 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之间的随机数,要求不能重复


获取101-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 array = new ArrayList();

//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);
}
}
}
推荐 0
本文由 邬家栋 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册