import java.util.*;
import java.util.logging.Logger;
public class Main {
private Logger logger = Logger.getLogger("ss");
public static void main(String[] args){
Main m = new Main();
m.getSameElementByList();
m.getSameElementByMap();
}
// 基本思路:相同 = 集合2-(集合2-集合1中相同的=不相同的)
public void getSameElementByList() {
Long begin=System.currentTimeMillis();
String[] strArr1 = { "xiaoxin", "niutou", "shanqiu", "luobo"};
String[] strArr2 = { "xiaoxin", "ggg", "shanqiu", "meile", "dddsf", "niutou" };
List<String> coll = Arrays.asList(strArr1);
List<String> coll2 = Arrays.asList(strArr2);
List<String> alter0 = new ArrayList<String>(coll2);
List<String> alter1 = new ArrayList<String>(coll);
List<String> alter2 = new ArrayList<String>(coll2);
alter2.removeAll(alter1);
Iterator<String> it1 = alter2.iterator();
while (it1.hasNext())
logger.info(it1.next());
logger.info("-------华丽的分割线-----------");
alter0.removeAll(alter2);
Iterator<String> it2 = alter0.iterator();
while (it2.hasNext())
{
logger.info(it2.next());
}
Long end=System.currentTimeMillis();
logger.info(String.valueOf(end-begin));
}
/**
* 把数组A的数据作为map的key,和value,然后用B的数据取值,不为NULL,说明相同
*/
public void getSameElementByMap(){
Long begin=System.currentTimeMillis();
logger.info("-------华丽的分割线-----------");
String[] strArr1 = { "xiaoxin", "niutou", "shanqiu", "luobo" };
String[] strArr2 = { "xiaoxin", "ggg", "shanqiu", "meile", "dddsf", "niutou" };
HashMap<String,Object> map=new HashMap<String, Object>();
for (String string1 : strArr1) {
map.put(string1, string1);
}
for (String string2 : strArr2) {
Object j=map.get(string2);
if(j!=null){
logger.info(j.toString());
}
}
Long end=System.currentTimeMillis();
logger.info(String.valueOf(end-begin));
}
}//综合本论坛两种比较好的思路。需要的一起拿去,或者改正
从论坛上看到这个帖子讨论,挺好...特此记录
分享到:
相关推荐
- **相等性比较**:`isequal` 或 `strcmp` 可以比较两个字符串是否相同。 - **顺序比较**:`strcmpi` 对大小写不敏感,`strlessthan`、`strgreaterthan` 等用于比较字符串的顺序。 6. **数组操作**: - **索引...
在LV中,一维数组通常表示为一排垂直排列的元素,每个元素都具有相同的数据类型,例如整数、浮点数或字符串。通过索引,我们可以访问和操作数组中的任意元素。 二、计算数组元素之和的原理 计算一维数组中所有元素...
数据结构中的数组和字符串是计算机...数组和字符串的特性使得它们在很多算法中不可或缺,如排序、搜索、动态规划等。理解和掌握这些基础知识是学习更高级的数据结构和算法的前提,也是成为一名熟练的程序员所必需的。
例如,对一个字符串数组进行排序: ```java String[] strArray = {"apple", "banana", "cherry"}; Arrays.sort(strArray); ``` 这将按字典顺序排序字符串。如果需要自定义排序规则,可以创建一个实现了`Comparator...
`strcmp`函数则用于比较两个字符串是否相同,它返回1表示相等,0表示不等。在处理文本时,`strsplit`函数很有用,它可以根据指定的分隔符将字符串分解为子串数组,如`strsplit('Hello, world!', ', ')`会得到`{'...
- **数组字符串相关.doc**:可能涵盖了如何处理字符串数组,包括创建、连接和分割字符串数组。 - **数组中删除一个元素.txt**:展示如何在数组中模拟删除元素的过程,可能通过创建新的数组来实现。 - **判断是数组....
定义了一个名为str的字符数组,用于存储一个字符串。 在C++中,还有很多其他的类型修饰符,例如:const、volatile、extern等。这些类型修饰符可以用于定义变量的性质和行为。 例如:const int a = 10;定义了一个...
在易语言中处理数组是非常常见的操作,而“取数组内容异同”则是数组处理中的一种重要功能,它涉及到比较两个或多个数组之间的元素差异,这对于数据处理、数据比较以及算法实现等方面都有很大的实际应用价值。...
这里定义了两个字符型数组`a`和`b`,长度均为5。这表示每个数组可以存储5个字符。 #### 四、用户输入与数组元素赋值 ```csharp for (i = 0; i ; i++) { a[i] = char.Parse(Console.ReadLine()); } ``` 通过`for`...
通过计算LCP(Longest Common Prefix,最长公共前缀)数组,可以找出两个或多个字符串的最长公共子串。LCP数组是基于后缀数组的,表示相邻两个后缀的最长公共前缀的长度。源码实现这部分功能有助于读者更好地掌握...
因此,当初始化二维字符数组时,编译器会根据每个字符串的实际长度分配内存,不会为所有元素预留相同的长度。每个字符串占用的空间仅与其实际长度加上终止符`\0`的长度有关。 4. 字符与字符串的转换: - 在处理...
例如,如果我们有两个字符串A1和B1,可以分别计算A1和B1中相同字符的数量。假设我们要比较字符"A",则公式如下: ```excel =COUNTIF(A1, "A") + COUNTIF(B1, "A") ``` 将此公式应用于所有字符,即可得到两字符串...
字符串比较的本质是将两个字符串进行逐个字符比较,如果全部字符都相同,就说明这两个字符串相等,否则就不相等。在 Matlab 中,字符串比较操作有多种方法,常见的有==、isequal、strcmp 等函数。 使用=='进行字符...
其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...
4.方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 5.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量...
这种结构在处理命令行参数时很有用,因为命令行参数通常以字符串数组的形式提供。 最后,引用于C++中是一个特殊的类型,它作为别名使用,引用一旦初始化后就必须始终引用同一个对象。引用不是独立的对象,而是现有...
尤其是LCS算法,它不考虑字符顺序,能够判断两个字符串中字符的公共组合,对于处理更复杂的字符串相似度判断有极大的帮助。 ### 知识点7:算法优化 在实现字符串比较时,不仅要考虑算法的正确性,还要注重其实现的...
- `strcmp(str1, str2)`: 比较两个字符串是否相等,不区分大小写。 - `str2double(str)`: 将字符串转换为数值。 5. **字符串操作** MATLAB还支持字符串的高级操作,如正则表达式匹配(使用`regexp`和`regexprep`...
- **数组函数**:使用VBA内置函数,如`LBound`和`UBound`获取数组的下界和上界,`Join`和`Split`函数处理字符串数组。 - **数组与工作表交互**:将数组的数据写入Excel单元格,或者从单元格读取数据到数组,这在...