JAVA进阶11
间歇性混吃等死,持续性踌躇满志系列-------------第11天
1、ArrayList
package cn.intcast.demo11; import java.util.ArrayList; /*
* 数组的长度不可以发生改变
* 但是ArrayList集合的长度是可以随意变化的
*
* 对于ArrayList来说,有一个尖括号<E>代表泛型。
* 泛型:就是装在集合当中的所有元素,全都是统一的什么类型
* 注:泛型只能是引用类型。不能是基本类型
* 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
* 如果内容为空,得到的是空的中括号
*
*/
public class Demo01ArrayList {
public static void main(String[] args) {
//创建了一个ArrayList集合,集合的名称是List,里面装的全都是String字符串类型
//注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容但是<>本身还是要写的
ArrayList<String> list = new ArrayList<>();
System.out.println(list);
}
}
运行结果图
尖括号的泛型定义完类型之后不能添加其他类型的集合元素,否则会报错
运行效果图
2、ArrayList集合的常用方法和遍历
package cn.intcast.demo11; import java.util.ArrayList; public class Demo01ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
System.out.println(list); //[] //向集合中添加元素
boolean su = list.add("赵奢");
System.out.println(list);
System.out.println("添加是否成功:"+su);
list.add("张仪");
list.add("苏秦");
list.add("大良造");
System.out.println(list); //从集合中获取元素:get。索引值从0开始
String s1 = list.get(0);
System.out.println("第0号索引位置的值是:"+s1);
System.out.println("========================");
//遍历集合中的元素
for (int i = 0; i <= 3; i++) {
System.out.println(list.get(i));
}
System.out.println("========================");
//从集合中删除元素:remove,索引值也是从0开始
String whoRemoved = list.remove(3);
System.out.println("被删除的人是:"+whoRemoved);
System.out.println(list);
System.out.println("========================");
//获取集合的长度,即其中元素的个数
int Size = list.size();
System.out.println("集合的长度是:"+Size);
System.out.println("========================");
//遍历集合
for (int i = 0; i < Size; i++) {
System.out.println(list.get(i));
}
}
}
运行效果图
3、ArrayLi集合存储基本数据类型
package cn.intcast.demo11; import java.util.ArrayList; public class Demo02ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//错误写法
// ArrayList<int> list1 = new ArrayList<int>();
ArrayList<Integer> list1 = new ArrayList<>();
ArrayList<Byte> list2 = new ArrayList<>();
ArrayList<Short> list3 = new ArrayList<>();
ArrayList<Long> list4 = new ArrayList<>();
ArrayList<Float> list5 =new ArrayList<>();
ArrayList<Double> list6 = new ArrayList<>();
ArrayList<Character> list7 = new ArrayList<>();
ArrayList<Boolean> list8 = new ArrayList<>(); list1.add(2);
list1.add(3);
System.out.println(list1);
}
}
运行效果图
4、生成6个1-33之间的随意整数,添加到集合,并遍历集合
package cn.intcast.demo11; import java.util.ArrayList;
import java.util.Random; public class Demo03ArrayList {
public static void main(String[] args) {
//创建Random对象
Random r = new Random();
//创建集合
ArrayList<Integer> list = new ArrayList<>();
//添加随机数到集合
for (int i = 0; i < 6; i++) {
int s = r.nextInt(33) + 1;
list.add(s);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
运行效果图
5、存储自定义对象
package cn.intcast.demo11; public class Student {
private String name;
private String sex;
private int age; public Student() {
} public Student(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}
标准的Student类
package cn.intcast.demo11; import java.util.ArrayList; public class Demo03ArrayList {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student s1 = new Student("武松","男",22);
Student s2 = new Student("孙二两","女",26);
Student s3 = new Student("宋江","男",25);
Student s4 = new Student("武大浪","男",23); list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4); for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println("姓名是:"+stu.getName()+"\n"+"性别是:"+stu.getSex()+"\n"+"年龄是:"+stu.getAge()+"\n");
}
}
}
ArrayList
运行效果图
6、定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起的集合。使用|||分隔每个元素。
package cn.intcast.demo11; import java.util.ArrayList; public class Demo04ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("金庸");
list.add("武侠");
list.add("科幻");
list.add("玄幻");
System.out.println(list);
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list){
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
String name = list.get(i);
if (i==list.size()-1){
System.out.print(name+"}");
}else {
System.out.print(name+"|||");
}
}
}
}
运行效果图
7、筛选集合中的随机数
package cn.intcast.demo11; import java.util.ArrayList;
import java.util.Random; public class Demo04ArrayList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random R = new Random();
for (int i = 0; i < 20; i++) {
int n = R.nextInt(50) + 1;
list.add(n);
}
ArrayList<Integer> smalllist = getSmallList(list);
for (int i = 0; i < smalllist.size(); i++) {
System.out.print(smalllist.get(i)+" ");
}
} //这个方法接收第一个list参数,返回第二个集合结果
public static ArrayList<Integer> getSmallList(ArrayList<Integer> list) {
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
if (num % 2 == 0) {
smallList.add(num);
}
}
return smallList;
}
}
运行效果图
JAVA进阶11的更多相关文章
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- Java进阶03 IO基础
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...
- 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)
本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...
- Java进阶(三十四)Integer与int的种种比较你知道多少?
Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值 ...
- Java进阶(三十二) HttpClient使用详解
Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- Java 进阶7 并发优化 5 并发控制板方法
Java 进阶7 并发优化 5 并发控制板方法 20131114 前言: Java 中多线程并发程序中存在线程安全的问题,之前学习 Java的同步机制,掌握的同步方法只有一种就是使用 ...
- Java进阶7并发优化4——JDK并发数据结构
Java进阶7并发优化4——JDK并发数据结构20131114 由于并发程序和串行程序的不同特点,在串行程序中使用的数据结构可能无法在并行程序中直接的正常使用,因为这些数据结构可能不是线程安全的,所以 ...
- Java进阶学习:将文件上传到七牛云中
Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...
随机推荐
- Resolving Issues of "Library Cache Pin" or "Cursor Pin S wait on X" (Doc ID 1476663.1)
Doc ID 1476663.1) To Bottom In this Document Purpose Troubleshooting Steps Brief Definition: ...
- [Oracle]Sqlplus 中使用 new_value
通过再sqlplus 中使用 new_value,可以把从表中查询出来的值,放置到 变量中.然后使用变量时,类似与宏定义一样,就可以像使用表中字段一样方便. 这使得sqlplus 的脚本具备和pl/s ...
- 深入剖析Redis系列:Redis数据结构与全局命令概述
前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. ...
- PS快速祛除脸上小雀斑
首先我们要把图片放到PS软件中,然后在PS左侧工具栏中找到污点修复画笔工具(J), 配合着污点修复画笔中的修补工具一起使用,注意:模式要选择正常,属性栏中类型要选择内容识别. 下一步我们需要在图层上添 ...
- jmeter学习记录--03--jmeter负载与监听
jmeter场景主要通过线程组设置完成,有些复杂场景需要与逻辑控制器配合. 一.测试计划设计与执行 场景设计 jmete线程组实际是一个线程池,根据用户设置进行线程池的初始优化,在运行时做各种异常的处 ...
- thymeleaf循环
th:each属性用于迭代循环,语法:th:each="obj,iterStat:${objList}"迭代对象可以是Java.util.List,java.util.Map,数组 ...
- 基于vue现有项目的服务器端渲染SSR改造
前面的话 不论是官网教程,还是官方DEMO,都是从0开始的服务端渲染配置.对于现有项目的服务器端渲染SSR改造,特别是基于vue cli生成的项目,没有特别提及.本文就小火柴的前端小站这个前台项目进行 ...
- Docker 删除容器日志
在使用docker的时候,我们经常通过 docker logs -f containername或者id 但是有时候日志很多.很麻烦.所以需要清理一下对应container的日志. 默认情况下,dao ...
- yyb博客的几道神仙题
该比赛链接 T5 题意: 给你一个\(n\times n\)的网格,开始有\(m\)个被涂成黑色的格子,如果存在三个格子\((x,y)\),\((y,z)\),\((z,x)\)满足\((x,y)\) ...
- Git让你从入门到精通,看这一篇就够了
简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...