`
qing_gee
  • 浏览: 121896 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Java中需要注意的一些案例

    博客分类:
  • Java
阅读更多

在编写Java代码中,我们或多或少会遇到下面的一些案例,对于这些情况,我们怎么做?那么接下来我介绍一些方法,大家可以看一下:

1.判断数组{"a","b","c","d"}是否包含有"a",见以下代码,你喜欢用哪一种呢,我推荐使用ifcontainsByArrays,因为该方法内部更严谨一些。

public static void main(String[] args) {
		String [] strs = {"a","b","c","d"};
		
		Test t = new Test();
		System.out.println(t.ifcontains(strs, "a"));
		
		System.out.println(t.ifcontainsByArrays(strs, "a"));
	}
	
	public boolean ifcontains(String [] strs, String str) {
		for (String s : strs) {
			if (s.equals(str)) {
				return true;
			}
		}
		return false;
	}
	
	public boolean ifcontainsByArrays(String [] strs, String str) {
		// 注意:Arrays.asList()方法返回的是 java.util.Arrays.ArrayList而不是java.util.ArrayList
		return Arrays.asList(strs).contains(str);
	}

 2.在循环中删除一个列表中的元素,见如下代码,我建议使用removeByIterator方法,因为不需要再创建新的list。

public static void main(String[] args) {
		List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
		List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
		
		Test1 t = new Test1();
		for (String s : t.removeByIterator(list, "c")) {
			System.out.print(s);
		}
		System.out.println();
		System.out.println("----------------------------");
		for (String s : t.removeByNewList(list1, "c")) {
			System.out.print(s);
		}
	}
	
	public List<String> removeByNewList(List<String> list, String str) {
		List<String> newList = new ArrayList<String>();
		for (String s : list) {
			if (!s.equals(str)) {
				newList.add(s);
			}
		}
		
		return newList;
	}
	
	public List<String> removeByIterator(List<String> list, String str) {
		Iterator<String> iterator = list.iterator();
		while (iterator.hasNext()) {
			String s = iterator.next();
			if (s.equals(str)) {
				// 移除迭代器返回的元素
				iterator.remove();
			}
		}
		
		return list;
	}

 暂时先列举两个,有时间的话,继续

 

2
2
分享到:
评论
6 楼 qing_gee 2014-07-06  
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator



没有认真看你的回复,sorry,谢谢的你提议。
5 楼 qing_gee 2014-07-06  
laozhao 写道
fly_宇光十色 写道
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错


同意,这样OK。好久没写了,不知道有没有语法错误。大致这样。

public static void main(String[] args) {
List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));

Test1 t = new Test1();
for (String s : t.removeByItSelf(list, "c")) {
System.out.print(s);
}
}

public List<String> removeByItSelf(List<String> list, String str) {
int i = list.size;
for (i,i>=0,i--) {
if (!s.equals(str)) {
list.remove(s);
}
}

return newList;
}




楼主知错就改,我本来以为你说的是顺序的remove,如果倒序remove的话,的确list的大小改变了也无所谓。赞。
具体写法参考以下

List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
int size = list.size();
for (int i = size - 1; i >= 0; i--) {
if (list.get(i).equals("c")) {
list.remove(i);
}
}
4 楼 laozhao 2014-07-04  
fly_宇光十色 写道
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错


同意,这样OK。好久没写了,不知道有没有语法错误。大致这样。

public static void main(String[] args) {
List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));

Test1 t = new Test1();
for (String s : t.removeByItSelf(list, "c")) {
System.out.print(s);
}
}

public List<String> removeByItSelf(List<String> list, String str) {
int i = list.size;
for (i,i>=0,i--) {
if (!s.equals(str)) {
list.remove(s);
}
}

return newList;
}

3 楼 fly_宇光十色 2014-07-04  
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错
2 楼 qing_gee 2014-07-04  
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不
1 楼 cs6641468 2014-07-04  
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

相关推荐

    java多线程经典案例

    本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致数据不一致。Java提供了多种同步机制,如synchronized关键字、Lock接口...

    java对Excel案例

    首先,我们注意到压缩包中的`jxl.jar`文件,这是一个Java Excel API库,它允许开发者读取、写入和修改Microsoft Excel文件。JExcelApi是早期广泛使用的Java与Excel交互的开源库,虽然现在已经有更现代的选择(如...

    java案例精粹150例

    2. **面向对象编程**:Java的核心是面向对象,案例中可能包含类的定义、对象的创建、封装、继承、多态等概念。这有助于理解类和对象的概念,以及如何通过它们来构建复杂的应用程序。 3. **异常处理**:Java的异常...

    Java web 的案例

    这个案例提供了一个学习和实践的基础,但需要注意的是,实际项目中,通常会使用MVC框架(如Spring MVC)或微服务框架(如Spring Boot)来简化开发。此外,代码质量和可维护性非常重要,欢迎各位探讨、修改和完善,...

    java简单bbs案例

    7. **安全性**:虽然这是一个简单的BBS案例,但仍然需要注意一些基础的安全措施,如输入验证、防止SQL注入、XSS攻击等,以保护用户信息的安全。 8. **异常处理**:良好的异常处理机制是任何应用程序的关键部分。在...

    一些大佬的经典Java简历及真实项目及个人技能和职责经典描述案例参考

    分享一些大佬的经典简历(阿里P7简历+12年老程序员简历)共10份,分别是不同工作年限的,以及《写简历应注意事项汇总.pdf》等资源内容。1、简历是面试的敲门砖,好的简历让HR和面试官眼前一亮,从而让你有了面试的...

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。

    java2实例教程案例

    【Java2实例教程案例】 Java2实例教程是针对Java编程语言的一个实践导向的学习资源,适合初学者和爱好者提升技能。这个教程旨在通过实际操作来帮助理解Java语言的核心概念和常用技术,让学习者能够从实践中掌握编程...

    Java课程设计案例精编:Java课程设计案例精编.ISO

    (1) 本光盘提供了书中案例的Java源代码文件及编译发布后的可执行文件。 (2) 读者可以使用文本编辑工具(例如Windows中的记事本)或Java编辑工具来打开和编辑Java源代码文件。 (3) 文件夹图标后的数字编号为章号。例如...

    JAVA 的BBS的开发案例

    在实际的项目中,开发一个BBS需要深入理解Java的核心特性,如面向对象编程、异常处理、多线程等,并结合Web开发技术如Servlet、JSP,以及框架如Spring Boot或Struts来构建高效稳定的系统。 【标签】:“JAVA”:这...

    Java小案例...Java许多使用的小案例,包括托盘,背景音乐,背景图片

    在Java编程领域,小案例是学习和巩固技术的宝贵资源,它们可以帮助开发者更好地理解如何将理论知识应用到实际项目中。本压缩包包含了一系列实用的Java小案例,涵盖了托盘、背景音乐和背景图片等重要功能,对于系统...

    java properties应用案例

    Java Properties是Java语言中用于处理配置文件的一个内置类,它主要负责存储键值对的数据,广泛应用于各种配置文件,如数据库连接配置、系统环境变量设置等。Properties类提供了读取和写入.properties文件的能力,...

    JAVA程序设计案例教程.rar

    理解如何正确地管理和同步线程,避免并发问题,是阅读源码时需要注意的重点。 异常处理是Java编程中不可忽视的部分。在HappyChat源码中,我们可能会看到try-catch-finally语句块,以及自定义异常的使用,这些都是...

    百度OCR文字识别,Java版本案例

    开发者可以通过学习和参考这个案例,快速地在自己的Java项目中实现OCR功能,提升文本处理的效率和准确性。在实际使用时,需要注意保护API密钥的安全,遵守百度的服务条款,并根据具体需求选择合适的OCR识别模式。

    JAVA简单的反射案例

    在本篇文章中,我们将探讨Java反射的基本概念、如何使用以及其在实际开发中的应用,结合“JAVA简单的反射案例”这一主题。 1. **什么是Java反射**: Java反射机制允许我们在运行时动态地获取类的信息(如类名、...

    JAVA学士后第二单元项目案例附数据库脚本

    在本项目案例中,我们关注的是"JAVA学士后第二单元"的学习内容,主题是超市账单管理。这个项目结合了数据库脚本来实现一个实际的业务场景,即管理超市的销售记录和账单。数据库脚本是任何应用程序的核心,尤其是对于...

    java 计算器 案例代码

    需要注意的是,进行除法运算时要防止除以零的情况,这会导致运行时错误。 在Java中,我们通常会创建一个类(如Calculator)来封装计算器的功能。类的设计可以采用面向对象的方式,包括定义私有变量来存储数值,公有...

    java web 项目案例

    在Java Web项目开发中,Ajax聊天室是常用的一个功能模块,它允许用户通过浏览器与服务器端进行异步交互。本案例介绍了如何利用Ajax技术实现一个简易的在线聊天室,具体地,提供了实时获取并显示在线人员列表的功能。...

    JAVA案例开发集锦

    这份PDF文档可能包含了多个不同主题的Java案例,覆盖了基础到高级的编程概念,帮助开发者从实践中学习和提升Java技能。下面我们将详细探讨一些可能涵盖的知识点: 1. **Java基础知识**:这可能包括Java语言的基础...

Global site tag (gtag.js) - Google Analytics