-
java boolean 随机数_Java中boolean数组随机数问题,以下有代码,两个问题(已标注),求大神解释,谢谢!...
2021-02-28 17:30:37有个问题,boolean 不是只能跟Ture或者false么,这样写一个数组,是单纯定义一个数组,还是把这个flags的数组已经定义成boolean 的一个值了 char[] chs = new char[5]; for (int i = 0; i ; i++) { int index; do { ...publicstaticchar[]generate(){//定义了一个方法从26个字母随机取出5个字母不能重复char[]letters={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','...
public static char[] generate() {//定义了一个方法从26个字母随机取出5个字母不能重复
char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z' };
boolean[] flags = new boolean[letters.length]; //问题一:这句是定义一个boolean类型的数组吗?有个问题,boolean 不是只能跟Ture或者false么,这样写一个数组,是单纯定义一个数组,还是把这个flags的数组已经定义成boolean 的一个值了
char[] chs = new char[5];
for (int i = 0; i < chs.length; i++) {
int index;
do {
index = (int) (Math.random() * (letters.length));
} while (flags[index]); // 问题二:while这句括号里的值第一次取值,比如为flags[1]时,它是怎么判定为false出来的?还是说最初定义boolean[]flags数组时,就已经是false了,因为下面把取过值的数定义为ture了,会再次循环的。就是想知道此处如何判定为false出来的
chs[i] = letters[index];
flags[index] = true;
}
return chs;
}
展开
-
nyoj 找球号(二) c/c++中vector数组记录离散化后的数据,java用vector没过,java里直接给boolean数组赋值...
2021-03-13 21:55:18java里面用boolean数组,100000100大小的boolean数组不超内存找球号(二)时间限制:1000ms | 内存限制:65535KB难度:5描述在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=...java里面用boolean数组,100000100大小的boolean数组不超内存
找球号(二)
时间限制:1000ms | 内存限制:65535KB
难度:5
描述
在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0
输入
第一行有一个整数n(0
随后有n行;
每行可能出现如下的任意一种形式:
第一种:
一个字符串"ADD",接着是一个整数m,随后有m个i;
第二种:
一个字符串"QUERY”,接着是一个整数M,随后有M个ki;
输出
输出每次询问的结果"YES"或"NO".
样例输入
2
ADD 5 34 343 54 6 2
QUERY 4 34 54 33 66
样例输出
YES
YES
NO
NO
#include
#include
#include
#include
using namespace std;
int main()
{
int n,i,m,p,j,y;
char char1[5];
vectorx[10001];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i
{
scanf("%s",char1);
scanf("%d",&m);
if(char1[0]=='A')
{
for(j=0;j
{
scanf("%d",&p);
x[p%10001].push_back(p);
}
}
else
{
for(j=0;j
{
int flag=0;
scanf("%d",&y);
for(int k=0;k< x[y%10001].size();k++)
{
if( x[y%10001][k]==y)
{ flag=1;printf("YES\n");break;}
}
if(flag==0)
printf("NO\n");
}
}
}
}
return 0;
}
java代码ac
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int time = scanner.nextInt();
boolean result[]=new boolean[100000100];
Arrays.fill(result, false);
while (time-- != 0) {
String string=scanner.next();
if(string.charAt(0)=='A')
{
int number=scanner.nextInt();
for(int i=0;i
{
int x=scanner.nextInt();
result[x]=true;
}
}
else {
int num=scanner.nextInt();
while(num--!=0)
{
int y=scanner.nextInt();
if(result[y])
System.out.println("YES");
else {
System.out.println("NO");
}
}
}
}
}
}
}
java用vector不过代码,在找原因
import java.util.Scanner;
import java.util.Vector;
class result
{
Vector vector=new Vector();
}
public class Main {
static result results[];
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
results=new result[1005];
for(int i=0;i<1005;i++)
results[i]=new result();
int time = scanner.nextInt();
while (time--!=0) {
String string = scanner.next();
int number = scanner.nextInt();
if (string.charAt(0) == 'A') {
for (int i = 0; i < number; i++) {
int x = scanner.nextInt();
results[x%1001].vector.add(x);
}
} else {
for (int j = 0; j < number; j++) {
int y = scanner.nextInt();
if(results[y%1001].vector.isEmpty()==true)
System.out.println("NO");
else{
int flag = 1;
for(int i=0;i
{
if(results[y%1001].vector.get(i)==y)
{
System.out.println("YES");
flag=0;break;
}
}
if (flag == 1)
System.out.println("NO");
}
}
}
}
}
}
-
nyoj 找球号(二) c/c++中vector数组记录离散化后的数据,java用vector没过,java里直接给boolean数组赋值
2012-08-02 16:06:59java里面用boolean数组,100000100大小的boolean数组不超内存 找球号(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都...java里面用boolean数组,100000100大小的boolean数组不超内存
找球号(二)
时间限制:1000 ms | 内存限制:65535 KB难度:5- 描述
- 在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY”,表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分别判断编号为ki 的球是否在这个空箱子中(存在为"YES",否则为"NO"),先答出者为胜。现在有一个人想玩玩这个游戏,但他又很懒。他希望你能帮助他取得胜利。
- 输入
- 第一行有一个整数n(0<n<=10000);
随后有n行;
每行可能出现如下的任意一种形式:
第一种:
一个字符串"ADD",接着是一个整数m,随后有m个i;
第二种:
一个字符串"QUERY”,接着是一个整数M,随后有M个ki; - 输出
- 输出每次询问的结果"YES"或"NO".
- 样例输入
-
2 ADD 5 34 343 54 6 2 QUERY 4 34 54 33 66
- 样例输出
- YES
- YES
- NO
- NO
#include<iostream> #include<vector> #include<cstdio> #include<algorithm> using namespace std; int main() { int n,i,m,p,j,y; char char1[5]; vector<int>x[10001]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%s",char1); scanf("%d",&m); if(char1[0]=='A') { for(j=0;j<m;j++) { scanf("%d",&p); x[p%10001].push_back(p); } } else { for(j=0;j<m;j++) { int flag=0; scanf("%d",&y); for(int k=0;k< x[y%10001].size();k++) { if( x[y%10001][k]==y) { flag=1;printf("YES\n");break;} } if(flag==0) printf("NO\n"); } } } } return 0; }
java代码ac
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int time = scanner.nextInt(); boolean result[]=new boolean[100000100]; Arrays.fill(result, false); while (time-- != 0) { String string=scanner.next(); if(string.charAt(0)=='A') { int number=scanner.nextInt(); for(int i=0;i<number;i++) { int x=scanner.nextInt(); result[x]=true; } } else { int num=scanner.nextInt(); while(num--!=0) { int y=scanner.nextInt(); if(result[y]) System.out.println("YES"); else { System.out.println("NO"); } } } } } } }
java用vector不过代码,在找原因import java.util.Scanner; import java.util.Vector; class result { Vector<Integer> vector=new Vector<Integer>(); } public class Main { static result results[]; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); results=new result[1005]; for(int i=0;i<1005;i++) results[i]=new result(); int time = scanner.nextInt(); while (time--!=0) { String string = scanner.next(); int number = scanner.nextInt(); if (string.charAt(0) == 'A') { for (int i = 0; i < number; i++) { int x = scanner.nextInt(); results[x%1001].vector.add(x); } } else { for (int j = 0; j < number; j++) { int y = scanner.nextInt(); if(results[y%1001].vector.isEmpty()==true) System.out.println("NO"); else{ int flag = 1; for(int i=0;i<results[y%1001].vector.size();i++) { if(results[y%1001].vector.get(i)==y) { System.out.println("YES"); flag=0;break; } } if (flag == 1) System.out.println("NO"); } } } } } }
-
java中的数组
2020-11-29 20:30:083.10数组 ...在java中不要求数组长度是常量。 在创建一个数字数组时,所有元素都初始化为0。boolean数组的元素初始化为false。对象数组的元素初始化为null,这表示这些元素还未存放任何对象。 3.10.1 for e3.10数组
数组是一种数据结构,用来存贮同一类型值得集合。
在声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字。例如:int[] a;
不过这条语句只声明了变量a,并没有将a初始化为一个真正的数组。应该使用new运算符创建数组。int[] a=new int[100];
在java中不要求数组长度是常量。
在创建一个数字数组时,所有元素都初始化为0。boolean数组的元素初始化为false。对象数组的元素初始化为null,这表示这些元素还未存放任何对象。
3.10.1 for each循环
for each循环语句的循环变量将会遍历数组的每一个元素,而不需要使用下标值。
举个例子:
public class Print { public static void main(String[] args) { int n; Scanner in = new Scanner(System.in); n=in.nextInt(); int[] a=new int[n]; for (int i:a) { System.out.println(i); } } }
tips:有个更简单的方法打印数组的所有值,即利用Arrays类的toString方法,调用Arrays.toString(a),返回一个包含数组元素的字符串。
3.10.2数组初始化以及匿名数组
int[] a={1,2,3};
a=new int[]{1,2,3};
3.10.3数组拷贝
在java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组。
public class Print { public static void main(String[] args) { int[] a={1,2,3}; int[] b=a; b[1]=100; System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); } }
如果希望将一个数组的所有值拷贝到一个新的数组中去,可调用Arrays类的copyOf方法。
public class Print { public static void main(String[] args) { int[] a={1,2,3}; int[] b; b=Arrays.copyOf(a,2*a.length); System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); } }
3.10.4命令行参数
在主函数的参数中,经常见到String[] args ,表明main方法将接收一个字符串数组,也就是命令行参数。
举个例子:
public class Hello{ public static void main(String[] args){ if(args.length==0||args[0].equals("-h")) System.out.print("Hello,"); else if(args[0].equals("-g")) System.out.print("Goodbye,"); for(int i=1;i<args.length;i++){ System.out.print(" "+args[i]); } System.out.print('!'); } }
下图是输出
3.10.5 数组排序
Arrays类中的sort方法
Arrays.sort(a);//优化的快速排序算法,默认升序
那降序怎么办?
提供两种办法吧。第一种比较直接
public class Print { public static void main(String[] args) { Integer[] a={1,2,3,8,5,7}; Arrays.sort(a,Collections.reverseOrder()); System.out.println(Arrays.toString(a)); } }
第二种也比较直接吧!
public class Print { public static void main(String[] args) { Integer[] a={1,2,3,8,5,7}; Arrays.sort(a, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2-o1; } }); System.out.println(Arrays.toString(a)); } }
这里sort方法的第二个参数是一个匿名内部类
3.10.6多维数组
double[][][] [] a=new double[100] [100];
遍历它也可以使用for each,也可以调用Arrays的方法直接输出:例如
public class Print { public static void main(String[] args) { double[][] b={ {1,2,3}, {4,5,6}, {7,8,9}, }; for (double[] row:b) { for (double value:row) { System.out.println(value); } }//增强for System.out.println(Arrays.deepToString(b)); } }
-
Java中的数组
2015-11-23 12:28:50Java中多维数组的声明和初始化应按从高维到低维的顺序进行 String s[]=new String [3]; String 中的方法 s.length();求数组长度 s.isEmpty();[返回值为Boolean型] s.indexOf('e') 返回‘e'所在的位置 如果不在... -
java40java中的数组
2016-05-25 09:40:06数组的类型 数组的定义方法 一维数组 二维数组 数组的操作方法数组的类型数组的定义方法一维数组int[] arr = {1,2,2,}; 数组的静态定义方法。...boolean为false。二维数组int[5][2] arr = {{1,3},{2,5}{4,6}{4,5}{7,9}} -
Java:获取数组中的子数组的多种方法
2019-03-21 15:30:21文章目录Java:从一个数组中创建子数组使用Arrays.copyOfRange函数使用subList Java:从一个数组中创建子数组 使用Arrays.copyOfRange函数 Arrays.copyOfRange支持:boolean[], byte[] ,char[],double[],float[]... -
java 判断数组元素_java中判断数组是否包含某元素的方法
2021-03-05 22:48:15有两种方法可以判断数组是否包含元素:方法1, 将数组转换为list,然后使用list的contains方法来判断:Arrays.asList(...).contains(...)java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char... -
java中的数组和集合_JAVA 数组和集合谁是爸爸
2021-02-28 18:19:09基本数据类型分别为byte,short,int,long,double,float,char,boolean。String自定义封装类(PO,VO 等实体类)数组,存储一组数据,可以是基本数据类型,也可以是引用数据类型,但只能是同一类型,并且大小一定。... -
java什么是数组_JAVA基础 数组
2021-03-07 08:57:17一、为什么需要数组?数组能保存大量的相同类型的数据数组:同类型、大批量我想要保存40个同学的考试成绩--使用变量保存...数据类型:char int double String boolean数组类型:char[] int[] double[] String[]四、数... -
java中链表数组的排序_Java基础练习-数组链表排序
2021-03-15 10:49:48//题目:把学生链表按照学号...import java.util.ArrayList;public class ArraySort{public static class Student//创建学生类(内部类){public int xuehao;public String name;public boolean sex;public Student(in... -
初步了解Java中的数组
2020-07-15 23:38:33boolean [] z; String[] m; 3.数组的赋值 静态初始化:有长度 有元素 int[] array = new int[]{10,20,0,40}; int[] array = {10,20,0,40}; 动态初始化:有长度 没有元素(不是真的没有 ,而是有默认值) -
【Java】按位存储:使用int存储boolean数组
2016-07-06 12:13:00有一种场景,比如App设置页中会有一组开关选项,这个时候保存这些开关的状态,如果每个按钮都对应一个boolean值的话,太大材小用显得鸡肋,频繁读取SharedPreferences 存取效率自然快不过一次读取。首先,敲定每个... -
java数组包含某个元素_java中判断数组是否包含某元素的方法
2021-03-01 08:21:10有两种方法可以判断数组是否包含元素:方法1, 将数组转换为list,然后使用list的contains方法来判断:Arrays.asList(...).contains(...)java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char... -
判断数组是否包含 java_java中判断数组是否包含某元素的方法
2021-02-12 15:24:01有两种方法可以判断数组是否包含元素:方法1, 将数组转换为list,然后使用list的contains方法来判断:Arrays.asList(...).contains(...)java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char... -
boolean初始化默认值_java如何给数组初始化
2020-11-24 11:31:36java如何给数组初始化Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个... -
xml 数组 java_如何将xml标记存储为Java中的数组
2021-03-09 03:15:02在我的应用程序中,我正在解析一个xml文件.在xml文件中,我有50个同名问题标签,现在我想将所有作为问题命名的标签存储为数组.在保存的那些标签中,我只希望在文本视图中放置一个问题标签....private boolean q... -
java判断数组是否有值_java怎么判断数组中是否存在指定值
2021-03-22 16:48:53java怎么判断数组中是否存在指定值发布时间:2020-06-24 10:34:42来源:亿速云阅读:66作者:Leahjava怎么判断数组中是否存在指定值?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个... -
java中数组集求余集_Java数组知识点归纳
2021-03-08 23:02:09数组概述数组是一种数据结构Java中要求数组中的数据是相同的类型数组的长度在初始化时就定好,以后不可变创建数字数组时,所有元素都初始化为0,boolean数组元素初始化为false,对象数组初始化为null。在Java中,... -
[转载] Java:获取数组中的子数组的多种方法
2020-12-14 10:14:04参考链接: Java中的数组Array 我的个人博客:zhang0peter的个人博客 Java:从一个数组中创建子数组 使用Arrays.copyOfRange函数 Arrays.copyOfRange支持:boolean[], byte[] ,char[],double[],float[],... -
java一维数组相乘_java中一维数组的常识(菜鸟教程)
2021-03-10 02:57:40如果是整数类型,int,byte,short,long类型,初始值为0如果是小数类型(float,double),那么初始值为0.0如果是boolean类型,里面元素的初始值为false如果是char类型数组,它里面的初始值为:’\u0000’(什么都没有)... -
Java中判断数组是否包含某值
2020-08-13 17:39:28public boolean findStr(String[] args,String str){ boolean result = false; //第一种:List result = Arrays.asList(args).contains(str); //第二种:set Set<String> sets = new HashSet<String&... -
java算法中 数组内容交换
2016-05-05 02:44:23选择排序中:到了交换的方法exch()时,明明debug的时候看到数组被交换,回到主程序,发现又回到没有交换前 测试数组:2112 输出1212 中间过程会有2112-1212-1122-1212 自己搜了一下,看到讲解都是数组传到... -
java数组怎么比较_Java中数组之间的比较
2021-03-16 11:03:08// null 元素是相等的. boolean[] bArr1 = null; boolean[] bArr2 = null; boolean b = Arrays.equals(bArr1, bArr2); // true // 比较两个boolean数组. bArr1 = new boolean[]{true... -
java入门之数组-去掉数组中重复的元素
2020-12-05 14:58:03创建一个boolean变量判断是否重复, 遍历老数组,如果重复将不插入新数组中,否则将不重复的数字插入到新数组中 // 5.遍历新数组 自己写的代码,只用到排序 public static void Hg05() { int[] old ={1,3,4,5,0,0,6... -
Java中byte数组和16进制字符串互相转换
2017-02-03 17:44:48首先,byte数组转成16进制字符串:/** * byte数组转成字符串 * * @param bytes 数组 * @param isCaptial 使用大写还是小写表示 ...public static String bytesToHexStr(byte[] bytes, boolean is -
java foreach循环 初始化数组_[JAVA] Java 数组、多维数组,动态、静态初始化,数组JVM内存模型分析...
2021-03-08 08:29:26我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其后的索引依次递增:其中,数据类型包括以下两种:基本数据类:byte,short,int,long,float,double,char,boolean引用数据类型:类,接口,... -
java数组动态存储_Java 用动态数组保存信息
2021-03-11 13:50:04Java中提供了各种数据集合类,这些类主要用于保存复杂结构的数据。其中,ArrayList集合可以看作为动态数组,它突破普通数组固定长度,可以随时向数组中添加和移除元素,这将使数组变得更加灵活。ArrayList集合类的...