增强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);
}
}
}

java基础(8)-集合类的更多相关文章

  1. java基础(8) -集合类-Collecion

    集合类-Collecion Collection接口 常用方法 //添加新元素 boolean add (E element); //返回迭代器 Iterator<E> iterator( ...

  2. 面试【JAVA基础】集合类

    1.ArrayList的扩容机制 每次扩容是原来容量的1.5倍,通过移位的方法实现. 使用copyOf的方式进行扩容. 扩容算法是首先获取到扩容前容器的大小.然后通过oldCapacity (oldC ...

  3. 【java基础之jdk源码】集合类

    最近在整理JAVA 基础知识,从jdk源码入手,今天就jdk中 java.util包下集合类进行理解 先看图 从类图结构可以了解 java.util包下的2个大类: 1.Collecton:可以理解为 ...

  4. Java基础__Java中自定义集合类

    Java基础__Java中集合类 传送门 自定义MyArrayList集合实现:增加数据.取数据.查看集合中数据个数方法 package com.Gary; public class MyArrayL ...

  5. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  6. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  7. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  8. Java基础应用

    Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,v ...

  9. Java基础知识学习(一)

    部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...

  10. java基础要点

    Java语言是现在比较常用的编程语言,因为Java语言可以编写桌用程序,也可以编写web程序,还能编写嵌入式程序.这是由于相比脚本语言,Java 的运行速度要快.而对于底层语言,Java与平台无关,可 ...

随机推荐

  1. (转)gethostbyname() -- 用域名或主机名获取IP地址

    struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值, ...

  2. 《从零开始学Swift》学习笔记(Day 32)——计算属性

    原创文章,欢迎转载.转载请注明:关东升的博客 计算属性本身不存储数据,而是从其他存储属性中计算得到数据. 计算属性概念: 计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的sette ...

  3. Unix/Linux中Cron的用法

    cron是unix或者linux下用来定时任务的命令,大致的用法如下:   1.服务的启动和关闭 /sbin/service crond start   //启动服务 /sbin/service cr ...

  4. 使用jquery的ajax方法获取下拉列表值

    AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,用户体验非常好. ...

  5. Vue.js之组件传值

    Vue.js之组件传值 属性传值可以从父组件到子组件,也可以从子组件到父组件. 这里讲一下从父组件到子组件的传值 还以上次的demo为例,demo里有APP.vue是父组件,Header.vue,Us ...

  6. springboot集成liquibase,h2数据库

    Liquibase是一个用于跟踪.管理和应用数据库变化的开源的数据库重构工具.它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制. Liquibase具备如下特性:* 不依赖于特 ...

  7. MySQL 中有关auto_increment及auto_increment_offset方面的介绍

    数据库查询中,涉及到auto_increment中的参数变量一共有两个 [root@localhost][(none)]> show variables like 'auto_inc%'; +- ...

  8. Spring 单例

    我们知道 Web 容器本身就是多线程的,Web 容器为一个 Http 请求创建一个独立的线程,所以由此请求所牵涉到的 Spring 容器中的 Bean 也是运行于多线程的环境下.在绝大多数情况下,Sp ...

  9. app是什么意思?智能手机的第三方应用程序

    APP,在手机中的意思就是application的简称,也就是应用程序的意思,一般指手机软件,是安装在手机上的软件,完善原始系统的不足与个性化.APP是智能手机的第三方应用程序,app通常分为个人用户 ...

  10. Kafka高可用的保证

    zookeeper作为去中心化的集群模式,消费者需要知道现在那些生产者(对于消费者而言,kafka就是生产者)是可用的.    如果没有zookeeper每次消费者在消费之前都去尝试连接生产者测试下是 ...