❶ java 怎么判断数组元素是否存在
Object[]s=newObject[8];
if(s[3]==null){
System.out.println("数组第四个元素为空");
}
通过数组下标判断数组元素是否为null判断
❷ 判断字符串是否存在数组中java编程
import java.util.Scanner;
public class test{
private static void input(){
int num;
boolean bFlage = false;
String str[] = new String[10000],strTemp;
try {//输入的如果不是数字会有异常(运行中的错误),所以用try...catch语句
//确定字符串数组的元素个数
System.out.print("请输入字符串数组的数量:");
num = new Scanner(System.in).nextInt();
if (num <= 0 || num >= 10000) {
System.out.println("你输入的数字不在判断范围之内!\n");
input();
}
//给字符串数组写入字符串元素
for (int i = 0; i < num; i++) {
System.out.print("请输入第"+(i+1)+"个字符串:");
str[i] = new Scanner(System.in).next();
}
//输入对比的字符串
System.out.print("请输入需要比对的字符串:");
strTemp = new Scanner(System.in).next();
//字符串比对
for (int i = 0; i < num; i++) {
if (strTemp.equals(str[i])) {
bFlage = true;
}
}
//输出比对结果
if (bFlage==true) {
System.out.println("字符串"+strTemp+"包含在该数组中!");
}else{
System.out.println("字符串"+strTemp+"不包含在该数组中!");
}
} catch (Exception e) {
System.out.println("你输入的不是数字!\n\n");
input();
}
}
public static void main(String[] args) {
input();
}
}
❸ Java中数组判断元素存在几种方式比较详解
直接上代码:
package test.contain.lishaojie;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class TestContain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] arr = new String[] { "DD", "CC", "DD", "FF", "KK"};
String target ="A";
int times = 1000;//次数
//转换成list方式
long startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByList(arr, target);
}
long endTime = System.currentTimeMillis();
long ration = endTime - startTime;
System.out.println("list方式: " + ration / 1000000);
//转换成set方式
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
BySet(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("set方式: " + ration / 1000000);
//直接循环方式
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByForLoop(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("循环方式: " + ration / 1000000);
//二分法查找
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByArraysBinarySearch(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("二分法查找: " + ration / 1000000);
}
public static boolean ByList(String[] arr, String targetValue) {
return Arrays.asList(arr).contains(targetValue);
}
public static boolean BySet(String[] arr, String targetValue) {
Set<String> set = new HashSet<String>(Arrays.asList(arr));
return set.contains(targetValue);
}
public static boolean ByForLoop(String[] arr, String targetValue) {
for(String s: arr){
if(s.equals(targetValue))
return true;
}
return false;
}
public static boolean ByArraysBinarySearch(String[] arr, String targetValue) {
int a = Arrays.binarySearch(arr, targetValue);
if(a > 0)
return true;
else
return false;
}
}
运行结果如下:
list方式: 5
set方式: 22
循环方式: 2
二分法查找: 3
经过大量数据测试循环方式效率最高,其次是二分法,最后是list,和set因为因为将数组压入Collection类型中,首先要将数组元素遍历一遍,然后再使用集合类做其他操作。但是list方式明显要比set方式快很多,这是为什么呢?直接看代码:首先
@SafeVarargs
@SuppressWarnings("varargs")
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
返回的是ArrayList所以set方式还要进行一次操作将ArrayList转换成set,
public HashSet(Collection<? extends E> c) {
map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
addAll(c);
}
之一addAll方法:
public boolean addAll(Collection<? extends E> c) {
boolean modified = false;
for (E e : c)
if (add(e))
modified = true;
return modified;
}
又一次进行了选环,所以效率比较低,binggo
❹ java中怎么判断一个字符串是否存在数组中
有2种方法,第一种就是直接循环数组,逐个进行判断。第二种就是先将数组转换成list,再使用list的contains方法进行匹配判断。
String[] arrStr = {"aser", "abc"};
for (String str : arrStr) {
if (str.contains("abc")) {
return true;
}
}
public static void main(String[] args) {
String aa []={"aaa","bbb","ccc","ddd"};
List<String> list=Arrays.asList(aa);
if(list.contains("aa")){
System.out.println("有aa");
}else{
System.out.println("没有aa");
}
}
❺ java中的数组存在哪
最后那个打印是bb那个方法里面调换了值x=a[0];a[0]=b[0];b[0]=x;,先是100等于x,然后是吧200赋值给了a[0],接下来是吧x=100赋给了b[0],所以此时的a[0]=200,b[0]=100
数组分为堆上数组和栈上数组,x=a[0];x在堆上,a[0]在栈上.
❻ java如何判断数组中是否包含某元素
这个问题,首先要将string数组转换成list集合,然后判断list集合中是否存在
public static void main(String[] args) {
//定义数组
String aa []={"timo","kainan","naer","lanbo"};
//数组转换成list
List<String> list=Arrays.asList(aa);
if(list.contains("timo")){
System.out.println("有提莫");
}else{
System.out.println("没有提莫");
}
}
❼ 在Java中,如何检测一个数组中是否包含某一个数据
在Java中,检测一个数组是否包含某一个数据,通常有四种方法:
(1)for循环
(2)转换为List,调用Arrays.asList(arr).contains方法
(3)使用Set
(4)使用Arrays.binarySearch()方法
下面为上述四种方法的具体代码实现:
1、使用for循环
public static boolean useLoop(String[] arr, String targetValue) {
for (String s : arr) {
if (s.equals(targetValue))
return true;
}
return false;
}
❽ java里判断数组里是否存在这个数,帮我看看,总是报错
这段代码的主要问题是最后判断这个数字是否存在于数组中.
比如 8是否存在于 2 4 6 8 ...的数组中.
那么用8依次和数组的元素进行比较, 只要有一次相同就可以认为在数组中了
参考代码
importjava.util.Scanner;
publicclassDate1_19{
publicstaticvoidmain(String[]args){
intarrt[]={8,4,2,1,23,344,12};
//循环输出数列的值
//求数列中所有数值的和
//猜数,任意输入一个数,判断数列中是否包含此数
for(inti=0;i<arrt.length;i++){
System.out.print(arrt[i]+",");
}
System.out.println();
intsum=0;
for(inti=0;i<arrt.length;i++){
sum+=arrt[i];
}
System.out.println(sum);
Scannerinput=newScanner(System.in);//input要放到dowhile的外面比较好
do{
doublea=input.nextDouble();//变量a放到for循环外面,否则会根据数组的长度,循环多次读取输入
booleanflag=false;//设置一个标记
for(inti=0;i<arrt.length;i++){
if(a==arrt[i]){//如果相等
flag=true;//那么标记设置为true,代表包含了该元素
break;//跳出for循环,因为该数字已经在数组中了,就不用一直循环,继续判断了
}
}
if(flag){
System.out.println("Yes");
}else{
System.out.println("No");
}
}while(true);
}
}
运行测试
8,4,2,1,23,344,12,
394
8
Yes
4
Yes
3
No
1.5
No
2
Yes
❾ 用数组的方法输入一个数判断此数是否在数组内用JAVA怎么做,急用!!!!!!!!!!!!!
import java.util.Scanner; //定义输入类;
public class Main {
public static void main(String[] args) {
Scanner Sc = new Scanner(System.in);//扫描键入信息;
int[] shuZu=new int[]{8,4,2,1,23,344,12};//定义数组;
System.out.print("请输入一个数:");
int jianRu=Sc.nextInt(); //获取键入信息;
for (int i= 0; i<shuZu.length ; i++) {
if (jianRu == shuZu[j]) {
System.out.println("恭喜你,猜对了,该数存在于该数组内");
break;} //键入数与数组数逐个比较,如果相等,输出文字后,中止,如果不相等进入下一个次循环。
if(i==shuZu.length-1&&jianRu!=shuZu[i]){
System.out.println("抱歉,该数不存在于该数组"); //进行判断,此次判断与数组中最后一个数作比较,输出文字
} }
❿ java怎么判断一个元素是否在数组中存在
public boolean hasElement(String[] array,String element) {
boolean flag=false;
int i;
int length=array.length;
for(i=0;i<length;i++) {
if(array[i].equals(element)) {
flag=true;
}
}
return flag;
}
---------------------分割线------------------
简单易懂,形参可以替换成你想要的数据类型。