用Java不用循环语句,把List<String>集合中的重复元素去除。
时间: 2024-05-13 13:17:28 浏览: 215
可以使用Java 8中的Stream API来去除List<String>集合中的重复元素,代码如下:
```java
List<String> list = Arrays.asList("apple", "orange", "banana", "apple", "pear", "banana");
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
```
以上代码中,首先使用Arrays.asList()方法创建了一个包含重复元素的List<String>集合。然后使用stream()方法将List<String>转换为一个流,再使用distinct()方法去除重复元素,最后使用collect()方法将流转换为List<String>集合。distinctList集合中就是去除重复元素后的结果。
相关问题
java开发中,在mybatis.xml里的sql,取出集合list中String类型值,list存有post,day,work三个属性,要求在sql循环遍历中去掉其中的某个属性,比如去除item中的days字段
可以使用MyBatis的foreach标签来循环遍历list集合中的元素,然后使用substring函数去掉days字段。具体的SQL语句如下:
<foreach collection="list" item="item" separator="union all">
select post, substring(work, 1, instr(work, ',day')-1) as work
from table_name
where post = #{item.post} and day = #{item.day}
</foreach>
其中,list是传入的参数,item是循环遍历时的变量名,separator是分隔符,用于拼接多个SQL语句。substring函数用于截取work字段中days字段之前的部分,instr函数用于查找work字段中days字段的位置。
使用 DriverManager.getConnection() 方法建立与 MySQL 数据库的连接,需要传入数据库的连接 URL、用户名和密码进行连接。 通过连接对象 driver 创建一个 Statement 对象,用于执行 SQL 语句。 创建一个 StringBuilder 对象 buffer,用于构建 SQL 插入语句。 使用 for 循环遍历 h 集合中的元素,将每个元素的字段值拼接成一个插入语句的值部分。 将拼接好的插入语句值部分加入到 buffer 中。 将 buffer 转换成字符串,并去除最后一个逗号,得到完整的插入语句。 使用 statement.execute(sql) 方法执行插入语句。 关闭 Statement 对象和数据库连接
根据您提供的描述,以下是带有注释的代码示例,展示如何使用 `DriverManager.getConnection()` 方法建立与 MySQL 数据库的连接,并执行插入语句:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://10.1.1.41:19030/ods_yuqing";
String username = "root";
String password = "root";
// 建立数据库连接
try (Connection connection = DriverManager.getConnection(url, username, password)) {
// 创建 Statement 对象
Statement statement = connection.createStatement();
// 创建 StringBuilder 对象用于构建插入语句
StringBuilder buffer = new StringBuilder();
buffer.append("INSERT INTO ods_quanguo_source_list VALUES ");
// 遍历 h 集合中的元素,构建插入语句的值部分
for (Elem elem : h) {
String id = elem.getId();
String url = elem.getUrl();
String title = elem.getTitle().replaceAll("'", "‘");
String author = elem.getAuthor().replaceAll("'", "‘");
String pub_time = elem.getPubTime();
String source_name = elem.getSourceName();
String create_time = elem.getCreateTime();
String sql = "('" + id + "','" + title + "','" + url + "','" + author + "','" + source_name + "','" + pub_time + "','" + create_time + "'),";
buffer.append(sql);
}
// 获取完整的插入语句字符串,并去除最后一个逗号
String sql = buffer.toString();
sql = sql.substring(0, sql.length() - 1);
// 执行插入语句
statement.execute(sql);
// 关闭 Statement 对象
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
请注意,这只是一个示例,您需要根据实际情况进行适当的修改和调整。在代码中,我假设您已经定义了 `Elem` 类来表示 `h` 集合中的元素,并提供了相应的 getter 方法来获取字段值。确保在使用完数据库连接和 Statement 对象后,通过关闭它们来释放资源。
阅读全文