导航:首页 > 编程语言 > java数组中存在

java数组中存在

发布时间:2024-11-10 23:40:26

java 判断一个数组中是否有重复的元素

使用一个临时list,借助list.contains判断当前数组的值是否存在于list中,如果不存在则加入到list中,如果存在则记录出来。有点像把一个篮子中的桌球放到另一个空篮子中,如果篮子里面已经有的就不要再放进去了,没有的,一个个放进去。说到底就是个遍历和存在性判断问题。

⑵ java判断数组中是否包含


importjava.util.Arrays;

publicclassTest_Array{

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub

int[]test={1,6,3,8,9,2,5};
Arrays.sort(test);//首先对数组排序
intresult=Arrays.binarySearch(test,5);//在数组中搜索是否含有5
System.out.println(result);//这里的结果是3

}
}

上面是一种办法 当然办法还多 比如你还可以把它 转成 list容器 然后调用 contains方法

甚至你可以自己封装个方法 循环一遍...

⑶ 在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)搜索一个字符数组中是否存在某个字符。如存在,返回该字符在数组中第一次出现的位置,否则返回-1.

public class Test {
public static void main(String[] args) {
String[] arr=new String[]{"a","b"};
System.out.println(find(arr, "c"));
}
public static int find(String[] arr,String str){
boolean flag=false;
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals(str)) {
flag=true;
return i;
}
}
if (flag==false) {
return -1;
}
return -1;
}
}

⑸ 在Java中,如何检测一个数组中是否包含某一个数据

在Java中,你需要确定一个数组是否包含特定的数据,有多种方法可供选择。以下是四种常见的实现策略:

首先,你可以使用for循环遍历数组,逐个比较元素,如以下代码所示:

1.使用for循环

publicstaticbooleanuseLoop(String[]arr,StringtargetValue){

for(Strings:arr){

if(s.equals(targetValue)){

returntrue;

}

}

returnfalse;

}

另一种方法是将数组转换为List,然后利用List的contains方法,代码如下:

2.转换为List并使用contains方法

publicstaticbooleanuseList(String[]arr,StringtargetValue){

returnArrays.asList(arr).contains(targetValue);

}

Set集合也可以用来检测元素是否存在,由于Set不允许重复元素,所以这种方法适合于不需要重复元素的场景:

3.使用Set

publicstaticbooleanuseSet(String[]arr,StringtargetValue){

Setset=newHashSet<>(Arrays.asList(arr));

returnset.contains(targetValue);

}

最后,如果你的数组是有序的,可以使用Arrays.binarySearch()方法进行二分查找,但请注意,它只适用于有序数组:

4.使用Arrays.binarySearch()方法(适用于有序数组)

(String[]arr,StringtargetValue){

inta=Arrays.binarySearch(arr,targetValue);

returna>=0;

}

总的来说,选择哪种方法取决于你的具体需求,如是否需要处理重复元素,数组是否有序等。在实际编程时,可以根据这些方法的优缺点来作出决定。

⑹ 在Java中,如何检测一个数组中是否包含某一个数据

在Java中,检测一个数组是否包含某一个数据,通常有四种方法:

(1)for循环

(2)转换为List,调用Arrays.asList(arr).contains方法

(3)使用Set

(4)使用Arrays.binarySearch()方法

下面为上述四种方法的具体代码实现:

1、使用for循环

publicstaticbooleanuseLoop(String[]arr,StringtargetValue){

for(Strings:arr){

if(s.equals(targetValue))

returntrue;

}

returnfalse;

}

/iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810"target="_blank"title="点击查看大图"class="illustration_alink">/iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810"/>

2、转换为List,调用Arrays.asList(arr).contains方法

publicstaticbooleanuseList(String[]arr,StringtargetValue){

returnArrays.asList(arr).contains(targetValue);

}

/iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992"target="_blank"title="点击查看大图"class="illustration_alink">/iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992"/>

3、使用Set

publicstaticbooleanuseSet(String[]arr,StringtargetValue){

SetStringset=newHashSetString(Arrays.asList(arr));

returnset.contains(targetValue);

}

/iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9"target="_blank"title="点击查看大图"class="illustration_alink">/iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9"/>

4、使用Arrays.binarySearch()方法

特别说明:binarySearch()二分查找仅适用于有序数组,如果不是有序数组,则报异常

(String[]arr,StringtargetValue){

inta=Arrays.binarySearch(arr,targetValue);

if(a0){

returntrue;

}else{

returnfalse;

}}

/iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d"target="_blank"title="点击查看大图"class="illustration_alink">/iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d"/>

(6)java数组中存在扩展阅读:

Java种List列表的contains方法:

该方法是通过遍历集合中的每一个元素并用equals方法比较是否存在指定的元素。

publicbooleancontains(Objecto){

IteratorEit=iterator();

if(o==null){

while(it.hasNext())

if(it.next()==null)

returntrue;

}else{

while(it.hasNext())

if(o.equals(it.next()))

returntrue;

}

returnfalse;

}

/iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec"target="_blank"title="点击查看大图"class="illustration_alink">/iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec"/>

⑺ 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中数组有哪些

Java中的数组有以下几类:

一、基本类型数组(Primitive Arrays)

在Java中,基本类型的数组是固定大小的数组,其元素类型是固定的。Java支持以下基本类型的数组:int数组、char数组、float数组、double数组、boolean数组等。此外,Java也支持其他基本数据类型对应的包装类数组,如Integer数组等。这些基本类型的数组可以存储相应的基本数据类型的数据。例如,int数组可以存储整数数据。

二、对象数组(Object Arrays)

在Java中,对象数组是一种特殊的数组类型,可以存储任何类型的对象引用。对象数组的元素可以是任何对象类型,包括自定义的类实例。创建对象数组时,需要指定元素的类型为Object。例如,Object[] arr = new Object[10];表示创建一个可以存储10个对象的对象数组。需要注意的是,对象数组中存储的是对象的引用,而非对象本身。

三、多维数组(Multi-dimensional Arrays)

除了上述的基本类型数组和对象数组外,Java还支持多维数组。多维数组可以看作是一个数组的数组的数组,具有多个维度。常见的多维数组有二维数组和三维数组等。多维数组的创建和使用方式较为复杂,需要指定每个维度的长度和元素类型。例如,int[][] matrix表示一个二维整型数组(矩阵)。每个元素又是一个整型数组,可以用于存储行内数据。二维数组广泛应用于矩阵运算和数据处理等场景。通过多维数组的嵌套循环可以方便地访问和操作每个元素。在Java中创建多维数组的语法较为复杂,需要注意每个维度的初始化和访问方式。多维数组的每一个维度都有自己独立的存储空间和管理方式。在进行操作时,需要根据具体的需求选择合适的维度进行访问和操作。此外,多维数组的创建和使用还需要考虑内存分配和性能优化等问题。因此在实际应用中需要根据具体情况进行选择和实现。

阅读全文

与java数组中存在相关的资料

热点内容
上海开车上班20公里源码 浏览:308
cab自解压注册 浏览:925
懂车帝app在哪里看配置对比 浏览:824
主升浪买卖源码 浏览:619
php引用另一个php 浏览:589
dosformat命令 浏览:86
php图库系统 浏览:974
python科学计算pdf第二版 浏览:5
ac3算法 浏览:33
玩吧app的猫在哪里买 浏览:384
app的aes加密 浏览:662
前端可以引入python脚本吗 浏览:260
单片机中断的原理 浏览:892
php开源架构 浏览:578
最好听的解压声控 浏览:259
mdb2php 浏览:34
安卓怎么修改ini文件夹 浏览:926
机构投资的创新之路pdf 浏览:683
如何用路由器访问公司服务器 浏览:526
dosrd命令 浏览:678